从 React 中的 material-ui 按钮获取值

IT技术 javascript reactjs material-ui formik
2021-05-04 22:10:00

我有这个功能

handleChangeButton = (e) => {
    alert(e.target.value)
    this.props.setFieldValue('degreeLevel', e.target.value);
  }

在我的组件渲染中,我有

<div className="twelve columns">
            <p>Degree Level</p>
            <Button
              variant="raised"
              label="Default"
              onClick = { this.handleChangeButton }
              value="Doctorate"
            >
              Doctorate
            </Button>

            <Button variant="raised" label="Default">
              Masters
            </Button>

            <Button variant="raised" label="Default">
              Undergraduate
            </Button>
          </div>

所以,我想要做的是,当我点击Doctorate按钮,就应该this.props.setFieldValuedegreeLevel这是在我的领域之一Formik形式。当我单击按钮时,警报给了我undefined,这意味着它没有读取 value Doctorate

如何e.target.value读取按钮的值?

2个回答

使用currentTarget代替target

handleChangeButton = (e) => {
    alert(e.currentTarget.value)
    this.props.setFieldValue('degreeLevel', e.currentTarget.value);
}

@yugantarkumar @monsto,这不是 Material UI 特有的东西,而是通过使用事件冒泡在 JS 中完成的。您可以在此处阅读有关差异的更多信息:http : //www.qc4blog.com/?p=650

currentTarget指的是事件侦听器所附加到target的元素,而表示与之交互的元素。MUI这个问题中是由单击MuiButton-label组件而不是MuiButtonBase组件引起的。