【发布时间】:2019-09-04 18:48:28
【问题描述】:
当在 Material-UI MenuItem 上调用 onClick 并且 value 属性是一个字符串时,事件函数将 value 视为零。
如果我将 value="sometext" 添加到按钮等其他元素,则效果很好。我还是新手,但似乎应该显示字符串值。
我做错了什么?
handleClose(e) {
console.log(e.currentTarget)
console.log(e.currentTarget.value)
}
...
return (
<Menu>
<MenuItem value={1} onClick={this.handleClose}>One</MenuItem>
<MenuItem value='A' onClick={this.handleClose}>Two</MenuItem>
</Menu>
);
在本例中,如果单击第一个菜单项,控制台输出如预期的那样:
<li ... value="1">...</li>
1
但我期待第二个菜单项是“A”,但它返回:
<li ... value="A">...<li>
0
我尝试使用字符串变量,使用 target 而不是 currentTarget。我可以使用 id="A" 而不是 value 属性,这很有效,但我想了解为什么会这样。
【问题讨论】:
-
你想用这个值做什么?
-
我正在学习 JavaScript + React。因此测试各种传递值的方式。这只是一个奇怪的案例,似乎没有任何意义。我的教程将 value="something" 列为传递数据的一种方式。
-
是的,
prop="value"语法是传递字符串作为 prop 值的有效方式。我建议你找一个不同的道具或不同的组件来测试它,因为MenuItem的value道具必须是一个数字,而且无论如何都没有用。例如TextField有一个label属性,它允许一个字符串并且更有意义地查看结果。
标签: reactjs material-ui