我正在一个ReactJs项目中,我有两个单选按钮,一个单选按钮的值是电子邮件ID,另一个单选按钮的值是'No Email Alerts',另外还有一个保存按钮。在页面上。因此,当我单击“无电子邮件警报”单选按钮并单击“保存”按钮时,我必须弹出一个窗口,显示“您将停止获取电子邮件警报。是否要继续?” 。因此,要检查单击了哪个单选按钮并显示弹出窗口,我添加了2个状态值。我的代码结构如下所示。
this.state = {
noAlertPopUpClicked:false,
showNoAlertPopup:false
}
然后在我的onRadioClick()
函数中,我添加了以下条件:
onRadioClick = (e, keys) => {
if(e.target.value === 'No text message alerts'){
this.setState({noAlertPopUpClicked: !this.state.noAlertPopUpClicked});
}
}
我还有另一个功能confirmNoAlertClicked()
,它将显示弹出窗口:
confirmNoAlertClicked() {
alert(this.state.noAlertPopUpClicked);
if(this.state.noAlertPopUpClicked) {
this.setState({showNoAlertPopup : true});
}
}
然后在我的渲染功能中
<DialogBox
displayDialog={this.state.showNoAlertPopup} >
<ConfirmEmail />
</DialogBox>
已经定义了<DialogBox />
组件,该组件将基于道具displayDialog
打开一个弹出窗口。<ConfirmEmail />
组件是DialogBox的内容。现在,我面临的问题是,当我单击“无警报”单选按钮然后单击“保存”时,第一次出现该对话框,但是如果再次单击“保存”按钮,该对话框将不会显示起来我的状态是否更新不正确?谁能指导我?
编辑1:我的保存按钮是:
<SceButton
id='Save'
buttonType='sceDisabled'
value='Save'
onClick={this.confirmNoAlertClicked} />