Javascript 具有prevState Comparison的componentDidUpdate正在处理备用触发器
我有一个主组件,它用一些道具调用另一个组件Javascript 具有prevState Comparison的componentDidUpdate正在处理备用触发器,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,我有一个主组件,它用一些道具调用另一个组件 // Main Component <AnotherComponent className="EnterNumber-input" submitClicked={this.state.submitClicked} /> 问题-此警报在交替单击按钮时可见 要求-每次点击按钮都会出现警告。违规行为: “如果(this.props.submitClicked&&this.props.submitClicke
// Main Component
<AnotherComponent
className="EnterNumber-input"
submitClicked={this.state.submitClicked}
/>
问题-此警报在交替单击按钮时可见
要求-每次点击按钮都会出现警告。违规行为:
“如果(this.props.submitClicked&&this.props.submitClicked!==prevProps.submitClicked){”
由于this.props.submitClicked是布尔值,因此每隔一次单击,即当submitClicked状态为false时,显示警报所需的条件之一为false,因此不会触发警报。由于this.props.submitClicked是布尔值,即使定义了该值,如果该值为false,this.props.submitClicked也会进行计算这是错误的
编辑:
如果要检查是否定义了this.props.submitClicked,请使用:
typeof this.props.submitClicked!=“未定义”
<button
onClick={async () => {
await this.setState({submitClicked : !this.state.submitClicked});
}}
>
Toggle SubmitClicked
</button>
componentDidUpdate = (prevProps) => {
if (this.props.submitClicked && this.props.submitClicked !== prevProps.submitClicked) {
alert('This alert is being called on alternate changes');
}
};