引导反应组件的onChange属性是否未传递事件?

时间:2019-11-27 00:33:36

标签: reactjs react-bootstrap

在我的一个课程中,我有一个处理React-bootstrap单选按钮组更改的函数:

handleChange(value){
  this.setState({ value: value })
}

这行得通,但我不明白为什么。该值直接传递而不是事件传递。据我了解,处理事件的函数应接受 event 作为参数,并访问调用该函数的元素的值,我应该使用:event.state.value

但是当我传递事件并使用event.state.value时,我收到一条错误消息:

  

无法读取未定义的值

这是我的渲染功能:

  render(){
    return(
      <React.Fragment>
        <ToggleButtonGroup type="radio" name="options" value={this.state.value} onChange={this.handleChange}>
          <ToggleButton value={1} variant="outline-dark">Option 1</ToggleButton>
          <ToggleButton value={2} variant="outline-dark">Option 2</ToggleButton>
          <ToggleButton value={3} variant="outline-dark">Option 3</ToggleButton>
        </ToggleButtonGroup>
      </React.Fragment>
    );
  }

有人可以解释为什么我的代码会那样吗?

通过安装CDN而不是npm的react和react-bootstrap方式。

1 个答案:

答案 0 :(得分:2)

在React Bootstrap中,ToggleButtonGroup将值直接传递到变更处理程序。参见文档here