我正在使用react-router-dom
,发现<MemoryRouter>
非常有用。但是,我仍然希望在浏览器中读取/写入URL的许多路由。我该如何实施呢?
由于
答案 0 :(得分:0)
最好将您的应用包装在BrowserRouter
和内部使用MemoryRouter
中,只在您需要的地方使用
答案 1 :(得分:0)
对于React Router v5,我认为您可以在需要的MemoryRouter
内嵌套BrowserRouter
,并使用useLocation
检测路由更改。
此示例代码对我有用。
import React from 'react';
import {
BrowserRouter, MemoryRouter, Switch, Route,
useLocation
} from 'react-router-dom';
const NestedComponent = () => {
return (
<Switch>
<Route exact path="/">
<p>test</p>
</Route>
</Switch>
);
};
const Component = () => {
return (
<BrowserRouter>
<Switch>
<Route exact path="/browser-router">
<MemoryRouter>
<NestedComponent/>
</MemoryRouter>
</Route>
<Switch>
</BrowserRouter>
);
};
export default Component;