我很沮丧,我讨厌 React,因为我领先一步,落后两步。现在的问题是 MenuItem 的方法 onCLick 事件是针对渲染时的,而不是当我有效单击菜单时。
MenuItem 位于 Drawer 组件内:
<Drawer
open={this.props.state_open_list_dash}
openSecondary={true}
docked={false}
>
Run Code Online (Sandbox Code Playgroud)
和:
<MenuItem
onClick={ this.handleChangeDash() }> Menu Name
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
在构造函数中:
this.handleChangeDash = this.handleChangeDash.bind(this);
Run Code Online (Sandbox Code Playgroud)
进而:
handleChangeDash ()
{
console.log(20);
}
Run Code Online (Sandbox Code Playgroud)
控制台上的“20”会在应用程序刷新时打印(3 次),并且在由于更改 state_open_list_dash 的单击事件而打开抽屉时打印(2 次)。
我已经结束了这些想法。在网上搜索我没有发现有人遇到这个问题,所以我很担心。
谢谢
onClick={ this.handleChangeDash() }这是因为您在运行时调用该函数。
将其更改为:
<MenuItem
onClick={ this.handleChangeDash }> Menu Name
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
或者你可以像这样创建一个箭头函数
<MenuItem
onClick={ () => this.handleChangeDash() }> Menu Name
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
onClick当事件发生时会自动调用它。
| 归档时间: |
|
| 查看次数: |
9745 次 |
| 最近记录: |