javascript - 在 React 中通过 URL 打开 Modal
问题描述
在我的主页中,我有一个模式按钮(演示)。
使用 react-router-dom,如何在不更改上一页中的 ui 的情况下通过 url 打开模式?
应用程序.js:
import React from "react";
import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom";
import { Modal } from "react-bootstrap";
export default function App() {
return (
<Router>
<div>
<h2>Click on Home</h2>
<ul>
<li>
<Link to="/home">Home</Link>
</li>
</ul>
<Switch>
<Route path="/:id" children={<Child />} />
</Switch>
</div>
</Router>
);
}
class Child extends React.Component {
componentDidMount() {
var x = document.getElementById("counter");
var counter = 1;
setInterval(function() {
counter++;
x.innerHTML = counter;
}, 1000);
}
render() {
return (
<>
<div id="counter">0</div>
<ShowModal />
</>
);
}
}
function ShowModal() {
const [show, setShow] = React.useState(false);
const handleClose = () => setShow(false);
const handleShow = () => setShow(true);
return (
<>
<div className="d-buttons">
<Link
to="/open-modal"
class="btn btn-danger border-0 mt-1"
onClick={handleShow}
>
Show Modal
</Link>
</div>
<Modal
size="lg"
show={show}
onHide={handleClose}
aria-labelledby="my-lg-modal"
>
<Modal.Header closeButton>
<Modal.Title id="my-lg-modal">Modal</Modal.Title>
</Modal.Header>
<Modal.Body>Example Content</Modal.Body>
</Modal>
</>
);
}
我还创建了一个简单的计数器来证明主页没有改变。
如果你不明白我的问题,我会解释清楚:
我需要使用 react-router-dom 打开带有 url 的简单引导模式,并且不需要更改主页中的任何内容。因为当我打开带有链接的模式时,我的上一页将消失。
此外,当我提示关闭按钮时,浏览器 url 必须更改为以前的位置。
解决方案
推荐阅读
- javascript - 使用标题破坏
- html - 建立外部链接和防止诈骗投诉的正确方法
- amazon-web-services - 将多个文件写入 S3 作为备份并处理最终一致性
- ios - 导出 .framework 时如何包含 Cocoapods 依赖项?
- .net-core - 如何在 Visual Studio for Mac 中解决 DLLNotFoundException
- javascript - 单元测试 POST HTTP 请求 - 如何期望随请求一起发送的对象成为 api URL 的一部分
- python - 为什么在 Python 中交互的两个全局字典会抛出本地引用错误?
- bash - bash find -print 删除结果?
- c# - 将 C# GRPC 客户端连接到 Go Server
- reactjs - 类型在 React-Native 应用程序的 TypeScript 中缺少以下类型的属性