我有这个功能
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.setFieldValue
到degreeLevel
,这是Formik
形式中的一个字段。当我点击该按钮时,该提醒会向我显示undefined
,这意味着它没有读取值Doctorate
。
如何让e.target.value
读取按钮的值?
答案 0 :(得分:6)
使用currentTarget
代替target
handleChangeButton = (e) => {
alert(e.currentTarget.value)
this.props.setFieldValue('degreeLevel', e.currentTarget.value);
}
答案 1 :(得分:0)
@yugantarkumar @monsto,这不是 Material UI 特有的东西,而是在 JS 中使用事件冒泡来完成的。您可以在此处阅读有关差异的更多信息:http://www.qc4blog.com/?p=650
currentTarget
指的是事件侦听器所附加到的元素,而 target
表示与之交互的元素。
在 MUI
中,此问题是由点击 MuiButton-label
组件而不是 MuiButtonBase
组件引起的。