javascript - 单击 ReactJs 中的 Switch Name 按钮后没有得到正确的输出
问题描述
单击 ReactJs 中的 Switch Name 按钮后没有得到正确的输出
应用程序.js:
state = {
persons: [
{ name: 'Max', age: 25 },
{ name: 'Manu', age: 29 },
{ name: 'Stephanie', age: 26 }
]
}
switchNameHandler = () => {
console.log('Was clicked!');
}
render() {
return (
<div className="App">
<h1> Working................ </h1>
<Person name={this.state.persons[0].name} age={this.state.persons[0].age} />
<Person name="abc" age="20" />
<Person name="uvw" age="20" />
<Person name="uvw" age="20" />
<Person name="lmno" age="20" >Working.........</Person>
<button onClick={this.switchNameHandler()}>switch Name</button>
</div>
);
}
输出:(点击6-7次后)
log.js:24 [HMR] Waiting for update signal from WDS...
react-dom.development.js:24994 Download the React DevTools for a better development experience: .....
App.js:20 Was clicked!
App.js:20 Was clicked!
DevTools failed to load SourceMap: Could not load content for chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/include.postload.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
Grammarly.js:2 [DEFAULT]: WARN : Using DEFAULT root logger
解决方案
你的问题就在这里。
<button onClick={this.switchNameHandler()}>switch Name</button>
你不需要()
函数结束时的。如果你有()
函数switchNameHandler
被执行并且函数的返回值(如果有的话)被分配给 onClick 处理程序。
你需要像这样给 onClick
<button onClick={this.switchNameHandler}>switch Name</button>
或者
<button onClick={()=>this.switchNameHandler()}>switch Name</button>
onClick 需要一个函数,而不是函数的返回,除非返回是另一个函数。
推荐阅读
- conda - conda 使用更新版本的 glibc
- python - 在python中根据名称和时间聚合数据
- css - 如何在浏览器中更改简单的长方形/线条的长度、粗细和曲率?
- tcp - Tshark TCP 十六进制标志到文本标签
- php - php:如何重定向到带有错误消息的同一页面
- google-apps-script - 如何动态设置范围内单元格的链接并使用相邻值(GAS)填充目标?
- r - 无法在 R 中显示用于元分析的森林图
- r - R矩阵根据列和删除行
- python - How to add occurrence of each entry to pandas data frame?
- android - 如何制作,复制文本并点击浮动图标以像谷歌翻译一样进行翻译?