我正在为 React 实践开发一个 Twitch 克隆应用程序,并且我正在为用户想要删除视频流时创建一个模式弹出窗口。基本上他们有一个流列表,他们单击其中一个流上的删除按钮,然后使用ReactDOM.createPortal
这是删除按钮
import React from "react";
import Modal from "../Modal";
const StreamDelete = () => {
return (
<>
<Modal />
</>
);
};
export default StreamDelete;
这是模态的代码
import React from "react";
import ReactDOM from "react-dom";
import { Redirect } from "react-router-dom";
const Modal = () => {
return ReactDOM.createPortal(
<div
className="ui dimmer modals visible active"
onClick={ () => {
return <Redirect to="/" />;
} }
>
<div className="ui standard modal visible active">
<div className="header">Delete Stream</div>
<div className="content">
Are you sure you want to delete this stream?
</div>
<div className="actions">
<button className="ui primary button">Delete</button>
<button className="ui button">Cancel</button>
</div>
</div>
</div>,
document.querySelector("#modal")
);
};
export default Modal;
此模式只能在 React-Router Route /streams/:id/delete上查看
我的预期行为是,当我单击深色背景时,我的onClick
函数应该返回<Redirect to="/">
应该关闭模态窗口的函数,因为它没有在该路由中呈现。
我得到的行为是单击深色背景不会重定向,尽管我也没有收到任何错误。
有关其他上下文,此项目的 GIT 存储库位于此处Glitch Client
到目前为止,我对这个项目的所有部分都有大量的笔记Ncoughlin:标记 Twitch 克隆