当在Material-UI MenuItem上调用onClick且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属性,并且可以,但是我想了解为什么会发生这种情况。
答案 0 :(得分:1)
li值属性必须是数字。
0可能是默认值,因此当您将其设置为'A'时,它将获得默认值。
请注意:
根据li docs,li值属性在无序列表中没有任何意义(material-ui菜单使用
值
此整数属性指示列表的当前顺序值 元素定义的项目。唯一允许的值 属性是数字,即使列表显示为罗马 数字或字母。列出此之后的项目继续 从值集中编号。值属性对 无序列表(
)或菜单(