为什么我的 onclick 在 React js 中的每个渲染上都被调用?
Why my onclick getting called on each render in react js?
我正在制作一个 React 应用程序,即使状态更改逻辑在 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>
上面我最初将标志 saveflag 设置为 false,我想在单击保存按钮时更改它,但它在每次渲染时都会更改。
有人可以帮忙吗?
preventDefault 应该有帮助:
onClick={e => {
e.preventDefault();
this.props.data.handleApiGrants(apis);
this.setState({saveflag:true});
}}
你的语法有问题,现在可以了:
onClick={() => {
this.props.data.handleApiGrants(apis);
this.setState({ saveflag: true });
}}
我正在制作一个 React 应用程序,即使状态更改逻辑在 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>
上面我最初将标志 saveflag 设置为 false,我想在单击保存按钮时更改它,但它在每次渲染时都会更改。
有人可以帮忙吗?
preventDefault 应该有帮助:
onClick={e => {
e.preventDefault();
this.props.data.handleApiGrants(apis);
this.setState({saveflag:true});
}}
你的语法有问题,现在可以了:
onClick={() => {
this.props.data.handleApiGrants(apis);
this.setState({ saveflag: true });
}}