antd-Modal 背景颜色加深问题

1,251 阅读1分钟
  1. 产生问题的原因

    table 中使用Modal弹窗,表格的每一次渲染都会产生一个蒙层的 div,因此导致了,蒙层的背景颜色变得的别黑

  2. 解决问题思路:

    基础使用的都是用一个 visible 来控制弹窗的显示,因此会导致不该显示的蒙层也会显示,所以我们可以对每一个弹窗单独设置一个visible来管理

  3. 实现需要满足的条件:

    • delVisible[]:用来存储不同弹窗的状态,可以直接创建
    • id:可以标识不同弹窗的值,可以通过record方法拿到对应行的标识值
  4. 实现代码:

    
    constructor(props) {
    
    super(props);
    
    this.state = {
    
    // 解决Modle弹窗问题
    
    delVisible: []
    
    };
    
    }
    
    // 为每一个弹窗生成一个控制变量
    
    showVisible = (id, state) => {
    
    const delVisible = this.state.delVisible
    
    delVisible[id] = state
    
    this.setState({
    
    delVisible: delVisible
    
    })
    
    }
    
    // Modal 上的使用
    
    <Modal
    
    title="xxxxxx?"
    
    visible={this.state.delVisible[id])]}
    
    onOk={() => this.oKRefund(id))}
    
    onCancel={() => this.showVisible(id, false)}
    
    okText="确认"
    
    cancelText="取消"
    
    >
    
    xxxxxxxxxxxxxxxxx 
    </Modal>```