reactjs - 在 React 中单击模态外部时,Bootstrap 模态没有关闭
问题描述
我使用 react-bootstrap 模式在 React 中显示通知。它工作正常,但是当我在模式之外单击时它没有关闭。
模态代码
import React from "react";
import ReactDom from 'react-dom';
import Modal from "react-bootstrap/Modal";
import ModalBody from "react-bootstrap/ModalBody";
import ModalHeader from "react-bootstrap/ModalHeader";
import ModalFooter from "react-bootstrap/ModalFooter";
import ModalTitle from "react-bootstrap/ModalTitle";
import 'bootstrap/dist/css/bootstrap.css';
class ForgetPassword extends React.Component{
constructor(props)
{
super(props);
this.state={
modalIsOpen:true
}
}
render()
{
return (
<Modal show={this.state.modalIsOpen}>
<ModalHeader>
<ModalTitle>Hi</ModalTitle>
</ModalHeader>
<ModalBody>asdfasdf</ModalBody>
<ModalFooter>This is the footer</ModalFooter>
</Modal>
);
}
}
export default ForgetPassword;
解决方案
您没有在 Modal 组件上设置切换。您需要将toggle
道具添加到<Modal>
,给它一个函数,当触发该函数时,将切换IsOpen
in 道具的值。
import React from "react";
import Modal from "react-bootstrap/Modal";
import ModalBody from "react-bootstrap/ModalBody";
import ModalHeader from "react-bootstrap/ModalHeader";
import ModalFooter from "react-bootstrap/ModalFooter";
import ModalTitle from "react-bootstrap/ModalTitle";
import 'bootstrap/dist/css/bootstrap.css';
class ForgetPassword extends React.Component{
state = {
modalIsOpen: true
}
toggleModal = () => {
this.setState(prevState => ({
modalIsOpen: !prevState.modalIsOpen
}));
};
render() {
return (
<Modal show={this.state.modalIsOpen} onHide={this.toggleModal}>
<ModalHeader>
<ModalTitle>Hi</ModalTitle>
</ModalHeader>
<ModalBody>asdfasdf</ModalBody>
<ModalFooter>This is the footer</ModalFooter>
</Modal>
);
}
}
export default ForgetPassword;
推荐阅读
- sql - 表没有 uid
- c# - 如何在 C# 9 代码生成器中获取 ctor 参数的类型?
- eclipse - 在 Eclipse 中创建动态 Web 项目时出现 web.xml 错误
- amazon-web-services - 带有身份池的 AWS 凭证
- powershell - 仅获取 WinEvent 最近的 1 个事件?
- docker - 在 yml 文件(Azure 管道)中有条件地设置参数:VAR 未更新
- php - PHP - 带有标签的单词不会在我的页面上得到回显
- python - 如何构建一个计算最近 X 天记录数的混合方法?
- python - 当纯文本字符数 > 16 时,C# 到 Python 密文不同
- javascript - Vue.js 3 和 webpack 5 的 HMR / 热模块替换问题