类组件的onChange事件问题

问题描述 投票:0回答:3

我只想从具有以下代码的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>

和处理程序功能:

selectOngoingAlerts = (e) => {
  this.setState(this.state.isChecked = true);
  const { householdAlerts } = this.props;
  console.log('checked', this.state.isChecked);
}

如何在selectOngoingAlerts功能中使无线电组件处于状态?我想就是否选中广播进行其他操作。

javascript reactjs semantic-ui
3个回答
2
投票

您需要从onChange回调的第二个参数接受数据/检查的值。您也试图在setState中分配值,这是错误的。像在componentDidMount]中一样进行操作

selectOngoingAlerts = (e, data) => {
  this.setState({isChecked: data});
}

0
投票

selectOngoingAlerts中,您可以检查isChecked是对还是假

类似这样的东西:

selectOngoingAlerts = (e) => {
    const {isChecked} = this.state

    if(isChecked) {
        console.log("I do something if it's true")
    } else {
        console.log("I do something if it's false")
    }
}

0
投票
selectOngoingAlerts = (e) => {
  const {isChecked} = this.state;
  this.setState({ isChecked : !isChecked });
  isChecked ? console.log('on') : console.log('off');
}
© www.soinside.com 2019 - 2024. All rights reserved.