【发布时间】:2021-05-08 17:20:04
【问题描述】:
在一个 React 项目中,我需要从另一个组件打开 Modal。我从 StackOverflow 中找到了建议的问题,但还没有被说服。因为我需要使 Modal 组件可在所有组件中重用。请参阅下面的代码以供参考
主页.js
const HomePage = () => {
return (
<>
<button onClick={() => setLoginModalShow(true)}>Open Modal</button>
</>
);
};
我也创建了以下文件来导出其他文件,并使其在其他组件中有用
commonLogin.js
import LoginModal from "./LoginModal";
export const setLoginModalShow = (props) => {
console.log("PROPS", props);
return <LoginModal showModal={props} />;
};
这是模态组件
const LoginModal = (props) => {
const [loginModalShow, setLoginModalShow] = useState(props.showModal);
console.log("PROPS in MODAL", props);
return (
<>
<Modal
show={loginModalShow}
onHide={setLoginModalShow}
size="lg"
aria-labelledby="contained-modal-title-vcenter"
centered
>
<Modal.Header closeButton>
<Modal.Title id="contained-modal-title-vcenter">Logout</Modal.Title>
</Modal.Header>
<Modal.Body>
<h4>Are you sure to Logout?</h4>
</Modal.Body>
<Modal.Footer>
<Button onClick={() => setLoginModalShow(false)}>Cancel</Button>
</Modal.Footer>
</Modal>
</>
);
};
请参考代码沙箱链接:https://codesandbox.io/s/nameless-cdn-70zuq。 访问页面后,单击“打开模式”按钮
【问题讨论】:
标签: javascript reactjs