简单的弹出确认框

效果图
效果图

1)弹出框用antd里的Modal组件

 <Modal
          title="创建角色"
          visible={isShowAdd}
          onOk={this.addRole}
          onCancel={() => {
            this.setState({ isShowAdd: false });
          }}
        >
        <AddForm setForm={form => { this.form = form;}}
          ></AddForm>
</Modal>

2)在状态里定义isShowAdd

 state = {
    isShowAdd: false, //标识确认框的显示 隐藏 添加角色
  };

3)点击确认时绑定的函数

在点击确认时,会先对你填写的表单内容进行表单验证,如果通过了分3步🙎‍♀️:

  1. 收集用户输入的数据
  2. 发请求
  3. 隐藏对话框
  addRole = () => {
    //先进行表单验证
    this.form.validateFields(async (error, values) => {
      if (!error) {
        //1)收集输入数据
        const { roleName } = values;
        //1.1)清除表单数据
        this.form.resetFields();
        //2)发请求
        const result = await reqAddRole(roleName);
        if (result.status === 0) {
          message.success("添加角色成功,柚子真不错");
          // this.getRoles()//重新获取角色列表
          const role = result.data; //新产生的角色
          // const roles = this.state.roles//取出数组
          // roles.push(role)//往数组里添加一个元素
          // this.setState({roles})
          //优化更新roles状态:基于原本状态数据更新
          this.setState(state => ({
            roles: [...state.roles, role]
          }));
        } else {
          message.error("咋回事类-添加角色失败");
        }
        //隐藏对话框
        this.setState({ isShowAdd: false });
      } else {
        message.error("请输入角色名称");
      }
    });
  };

4)给按钮绑定点击函数,才能弹出确认框呀

 <Button
          type="primary"
          onClick={() => {
            this.setState({ isShowAdd: true });
          }}
          style={{ marginRight: 10 }}
        >
         创建角色
        </Button>

5)确认框里的代码

确认框里的内容可以单独抽离出一个子组件来写,eg:AddForm组件创建角色

6)涉及子传父

因为你在子组件AddForm里写的弹出框的代码,用户输入的一系列属性都在form里,你需要将form传到父组件

注意:子组件之所以写成了高阶组件,是因为只有高阶组件才能获取到表单form

回忆子传父:在父组件定义方法,子组件调用此方法传过去

  1. 父组件里定义了setForm方法
 <AddForm  setForm={form => {} } ></AddForm>
  1. 子组件调用这个方法
    在这里插入图片描述3.父组件将传过来的form保存到自身上
  <AddForm setForm={form => {this.form = form; }}></AddForm>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你使用的是 Bootstrap 架,可以使用 Bootstrap 的 Modal 组件来实现弹出确认。以下是一个简单的示例: ```html <!-- 引入 Bootstrap 样式和 JavaScript --> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script> <!-- 一个按钮,点击弹出确认 --> <button class="btn btn-primary" data-toggle="modal" data-target="#confirmModal">点击弹出确认</button> <!-- 确认的 HTML 代码 --> <div class="modal fade" id="confirmModal" tabindex="-1" role="dialog" aria-labelledby="confirmModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="confirmModalLabel">确认标题</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> 确认内容 </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button> <button type="button" class="btn btn-primary">确认</button> </div> </div> </div> </div> ``` 这个示例中,我们定义了一个按钮,点击这个按钮会弹出一个确认确认的 HTML 代码在 `div` 元素中,其中 `id` 属性为 `confirmModal`,和按钮中的 `data-target` 属性相对应。确认中包含一个标题、一个内容和两个按钮,分别为“取消”和“确认”。点击“取消”按钮或者确认外的区域都会关闭确认,点击“确认”按钮会执行默认行为。你可以在“确认”按钮的 `onclick` 事件中编写你需要执行的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值