react中点击事件带参数会立即执行2021-07-05
环境:本次使用版本为"react": “^17.0.2”
之前的版本也有同样的问题,点击事件存在该问题,其他事件同理;
问题代码如下,用该种方式写点击事件则页面初始化的时候就会执行该事件
import './App.css';
const App = () => {
const btnAction=(a)=>{
console.log(this,a);
}
return (
<div className="App">
<div onClick={btnAction('XXX')}>点击事件</div>
</div>
);
}
export default App;
为防止一刷新页面就执行该方法,则需要使用箭头函数方式书写
正确代码:
方法一:改变点击事件
//方法不变的情况下,改变事件用箭头函数调用
const btnAction=(a)=>{
console.log(a);//underfin XXX
}
<div onClick={(e)=>btnAction('XXX')}>点击事件</div>
方法二:改变方法
//方法不变的情况下,改变事件用箭头函数调用
const btnAction=(a)=>(e)=>{
console.log(a);//underfin XXX
}
<div onClick={btnAction('XXX')}>点击事件</div>
使用 function 方法同理
//事件不变的情况下,改变方法也是可以的
function btnAction(a){
console.log(a);//underfin XXX
}
return (
<div className="App">
<div onClick={()=>btnAction('XXX')}>点击事件</div>
</div>
);
}
export default App;