React 生命周期或者state相关问题

#1

是这样的,我采用的是React+antd 现在正在做一个CheackBox的多选。

这里我能正常的获取到选择的学生的ID

现在我要做的一件事情就是,当我改变课程时,重新选择学生。如图:

这个时候,我点击确定,就获取不到现在的值了,依然是图一里的值。

我有一个数组用来存放选择的学生ID,但是当我改变课程的时候,这个数组的值没有被清空,依旧是图一里的值,我要怎样去把这个数组的值给清空呢?

还有,我的单选即课程是一个组件,多选学生是另外一个组件,基本没啥关系。

各位老铁,请都来解决下,我的问题吧。困扰了很久了。。。。先解决这个,还有个问题待解决!

#2

我考虑过用生命周期的方式,去清空,好像不行。。。。直接在点击确定后,将数组写为空,也不行。。。所以就不知道怎么清空了,也循环数组,删除数组里的内容,也不行。。。疯了 疯了。

#3

代码贴出来看看

#4

#5

切换课程的时候 有没有把checkbox选择的值 清空

#6

我感觉应该是你这里写的有问题 你可以console试试

#7

这里就是获取checkbox的值。。。。不用这样的方式获取,用什么方式获取呢。。。

#8

stuList 存在父级里,传入子级

class Action extends React.Component {
  state = {
    value: 0,
    stuList: []
  }

  onChange = (value, label) => {
    if (this.state.value === value) {
      return
    }
    // ...
    this.setState({
      value,
      label,
      stuList: []
    })
  }

  // ...

  stuChange = stuList => {
    this.setState({
      stuList
    })
  }

  render() {
    // ...

    return (
      // ...
      <ActionsCheack stuList={this.state.stuList} onChange={this.stuChange}>
        123
      </ActionsCheack>
    )
  }
}