我很沮丧,我讨厌React,因为我在两个后面领先一步。 现在问题是关于MenuItem的onclick事件的方法,该事件以渲染时为目标,而不是在我有效点击菜单时。
MenuItem位于Drawer组件中:
<Drawer
open={this.props.state_open_list_dash}
openSecondary={true}
docked={false}
>
使用:
<MenuItem
onClick={ this.handleChangeDash() }> Menu Name
</MenuItem>
在构造函数中:
this.handleChangeDash = this.handleChangeDash.bind(this);
然后:
handleChangeDash ()
{
console.log(20);
}
控制台上的“20”在应用程序刷新时打印(3次),当打开抽屉时由于更改state_open_list_dash的点击事件打印(2次)。
我已经结束了这些想法。在网上搜索我没有找到任何有这个问题的人,所以我很担心。
感谢
答案 0 :(得分:2)
这是因为您在运行时调用了函数onClick={ this.handleChangeDash() }
。
将其更改为:
<MenuItem
onClick={ this.handleChangeDash }> Menu Name
</MenuItem>
或者你可以制作像这样的箭头功能
<MenuItem
onClick={ () => this.handleChangeDash() }> Menu Name
</MenuItem>
onClick
会在事件发生时自动调用它。