值属性未在函数中显示字符串

时间:2019-09-04 18:48:28

标签: reactjs material-ui

当在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属性,并且可以,但是我想了解为什么会发生这种情况。

1 个答案:

答案 0 :(得分:1)

li值属性必须是数字。
0可能是默认值,因此当您将其设置为'A'时,它将获得默认值。


请注意:

根据li docs,li值属性在无序列表中没有任何意义(material-ui菜单使用

    在无序列表中)。

      

         

    此整数属性指示列表的当前顺序值   元素定义的项目。唯一允许的值   属性是数字,即使列表显示为罗马   数字或字母。列出此之后的项目继续   从值集中编号。值属性对   无序列表(

      )或菜单()。