javascript - 可以在需要时成功打开模态但无法关闭
问题描述
我正在尝试使用 React boostrap modal,我可以在需要时成功打开它,但我无法关闭它。我不知道我做错了什么。
我的标记
``` <Modal show={this.props.show} >
<Modal.Header>
<Modal.Title>Enter Log</Modal.Title>
</Modal.Header>
<Modal.Body>
Hello i am Modal!!!!!
</Modal.Body>
<Modal.Footer>
<Button onClick={() => {closeModal()}} variant="primary"> Close </Button>
</Modal.Footer>```
状态:
constructor(props) {
super(props)
this.state = {
closeModal: false
}
}
处理函数:
const closeModal = () => {
this.setState({closeModal: true});
}
解决方案
您需要使用相同的条件来检查是否呈现模态
您props
用于检查您的模态是否应该呈现,并且在关闭它时,您设置state
为 false。
如果你想使用props
,你需要更新你的道具,使用 redux 并调度一个动作或其他什么
根据你的 handleClose 功能,你需要检查state
而不是props
在条件
const closeModal = () => {
this.setState({closeModal: true});
}
<Modal show={this.props.show} >
<Modal.Header>
<Modal.Title>Enter Log</Modal.Title>
</Modal.Header>
<Modal.Body>
Hello i am Modal!!!!!
</Modal.Body>
<Modal.Footer>
<Button onClick={() => this.closeModal()} variant="primary"> Close </Button>
</Modal.Footer>
推荐阅读
- angular - 找不到带有路径的控件:'transOptsArr -> width'
- twincat - Twincat 3 使用 FB_MBReadRegs Modbus
- typescript - 类型实例化的两个组合泛型结果过深且可能无限。(2589)
- excel - 如何将 COMA 或 DOT 检测为多语言 excel-vba 宏的十进制
- c++ - 异步调用类函数时出现分段错误
- javascript - CSS Scroll Snap 获取活动项目
- java - Java:按照 DTD 中定义的元素顺序编组为 XML
- c# - NEST IElasticClient 不返回任何结果(零命中)
- ios - 获取一个字符串并将其传递给委托人
- ios - 如何快速排列曲线上的对象?