Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在react js中的每个渲染上调用我的onclick?_Javascript_Html_Reactjs_Components_Use State - Fatal编程技术网

Javascript 为什么在react js中的每个渲染上调用我的onclick?

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

我正在制作一个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>
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})