Javascript 类组件的onChange事件问题

Javascript 类组件的onChange事件问题,javascript,reactjs,semantic-ui,Javascript,Reactjs,Semantic Ui,我只想从ui语义中的Radio组件(选中或未选中)获取值,该组件具有以下代码: componentDidMount() { this.setState({ startDate: moment() .subtract(30, 'days') .startOf('day'), endDate: moment().endOf('day'), isChecked: false, }); } 无线电部件: <

我只想从ui语义中的Radio组件(选中或未选中)获取值,该组件具有以下代码:

  componentDidMount() {
    this.setState({
      startDate: moment()
        .subtract(30, 'days')
        .startOf('day'),
      endDate: moment().endOf('day'),
      isChecked: false,
    });
  }
无线电部件:

<Radio toggle className="ongoing-checkbox"
  label="Show ongoing alerts"
  value={ !this.state.isChecked }
  onChange={e => this.selectOngoingAlerts(e)}></Radio>

如何在
selectionongalerts
功能中设置收音机部件的状态?我想针对是否选中无线电进行不同的操作。

您需要接受onChange回调的第二个参数中的数据/选中值。您试图在
setState
中分配值,这是错误的。像在
组件didmount中那样操作

selectOngoingAlerts = (e, data) => {
  this.setState({isChecked: data});
}
同时更新无线电组件,将回调传递给处理程序,您不需要或不想要lambda

<Radio toggle className="ongoing-checkbox"
  label="Show ongoing alerts"
  value={ !this.state.isChecked }
  onChange={this.selectOngoingAlerts} />

从文件来看

您应该引用像我链接的
复选框
文档,因为
收音机
的语法糖


请记住:
设置状态
是异步的,因此您无法
控制台记录您试图记录的值。如果确实想查看其更新的值,请使用setState上的回调,或者只需将
控制台.log
移动到渲染,以便可以查看渲染周期上的值更改。

此.setState(this.state.isChecked=true)不应该吗
be
this.setState({isChecked:true})那么我应该从componentDidMount中完全删除“isChecked:false”吗?如何定义组件的状态?也就是说,如果您已经给它赋值为false,那么它在did mount中就不需要了。谢谢请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。带有解释的答案通常质量更高,更容易吸引选票。
selectOngoingAlerts = (e) => {
  const {isChecked} = this.state;
  this.setState({ isChecked : !isChecked });
  isChecked ? console.log('on') : console.log('off');
}
selectOngoingAlerts = (e) => {
  const {isChecked} = this.state;
  this.setState({ isChecked : !isChecked });
  isChecked ? console.log('on') : console.log('off');
}