单击ReactJs中的单选按钮时如何显示弹出窗口

时间:2018-10-16 08:15:35

标签: javascript reactjs

我正在一个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} />

0 个答案:

没有答案