MenuItem点击事件定位于渲染

时间:2018-02-09 10:10:24

标签: reactjs

我很沮丧,我讨厌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次)。

我已经结束了这些想法。在网上搜索我没有找到任何有这个问题的人,所以我很担心。

感谢

1 个答案:

答案 0 :(得分:2)

这是因为您在运行时调用了函数onClick={ this.handleChangeDash() }

将其更改为:

 <MenuItem 
    onClick={ this.handleChangeDash }> Menu Name 
 </MenuItem>

或者你可以制作像这样的箭头功能

 <MenuItem 
    onClick={ () => this.handleChangeDash() }> Menu Name 
 </MenuItem>

onClick会在事件发生时自动调用它。