Javascript 为什么在react js中的每个渲染上调用我的onclick?
我正在制作一个react应用程序,在每次渲染时,即使状态更改逻辑在Javascript 为什么在react js中的每个渲染上调用我的onclick?,javascript,html,reactjs,components,use-state,Javascript,Html,Reactjs,Components,Use State,我正在制作一个react应用程序,在每次渲染时,即使状态更改逻辑在onClick函数中,我的变量也会更改 这是我的密码: constructor() { super(); this.state = { options: [], suboptions: [], saveflag:false }; } <div> { console.log(this.state.s
onClick
函数中,我的变量也会更改
这是我的密码:
constructor() {
super();
this.state = {
options: [],
suboptions: [],
saveflag:false
};
}
<div>
{
console.log(this.state.saveflag),
saveflag?<></>:
<button
type="button"
className="btn"
onClick={() => this.props.data.handleApiGrants(apis),this.setState({saveflag:true})}
>
Save
</button>}
</div>
</div>
constructor(){
超级();
此.state={
选项:[],
子选项:[],
saveflag:false
};
}
{
console.log(this.state.saveflag),
保存标志?:
this.props.data.handleApiGrants(API),this.setState({saveflag:true})
>
拯救
}
在上面,我最初将saveflag设置为false,我想在单击save按钮时更改它,但每次渲染时都会更改它
有人能帮忙吗?preventDefault应该有帮助:
onClick={e=>{
e、 预防默认值();
这个.props.data.handleApiGrants(API);
this.setState({saveflag:true});
}}
您的语法有问题,现在它可以工作了:
onClick={() => {
this.props.data.handleApiGrants(apis);
this.setState({ saveflag: true });
}}
现在开始工作,谢谢您不需要添加preventDefault,这是不必要的,因为您错过了this.props.data.handleApiGrants(API)、this.setState({saveflag:true})