我在用着材质用户界面 https://material-ui.com/对于菜单和菜单项。
我试图获取菜单项的值,但它不起作用。
这是我的代码:
<Menu value= { this.state.selectedItem }>
<MenuItem onClick={this.listClicked}
leftIcon={
<FontIcon
className="material-icons"
style={{ color: 'white', margin: '0' }}>
format_list_bulleted
</FontIcon>
}
/>
<MenuItem onClick={this.settingClicked}
leftIcon={
<FontIcon
className="material-icons"
style={{ color: 'white', margin: '0' }}>
settings
</FontIcon>
}
/>
</Menu>
public listClicked = (value) => {
this.setState({
selectedItem :value
})
console.log(this.state.selectedItem)
}
我没有得到该值,并且在导航器的控制台中我有一个对象。
你能帮助我吗?
谢谢
Use a 数据属性 https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes#JavaScript_Access在菜单项上并从currentTarget
点击事件的。注意data-my-value
属性变为myValue
on event.currentTarget.dataset
.
const handleClick = event => {
const { myValue } = event.currentTarget.dataset;
console.log(myValue) // --> 123
}
<MenuItem
data-my-value={123}
onClick={handleClick}
>
<div>text</div>
</MenuItem>
Why currentTarget
代替target
?
The currentTarget
指的是事件侦听器直接附加到的元素target
指的是 MenuItem 中的特定元素,例如某些div
,即被点击。该 div 没有data-my-value
属性,因此target
不会有myValue
on its dataset
。所以使用currentTarget
在这种情况下。
有关的:如何从 React 中的事件对象访问自定义属性? https://stackoverflow.com/questions/20377837/how-to-access-custom-attributes-from-event-object-in-react
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)