根据React Router 5.1 documentation,应该可以看到“该应用程序现在在哪里,您想去哪里,甚至在哪里”。在我的应用中,我需要查看“它在哪里”-在降落到特定位置之前我访问过的位置。
更准确地说;我希望找到一个符合特定模式的优越位置。该位置可能是两三个位置。
但是-我不知道如何执行此操作。
实现此目标的最佳和推荐方法是什么?
亲切的问候/ K
答案 0 :(得分:0)
在React Router中,如果您需要对历史记录中的先前路径做出反应,则可以使用goBack()方法。另外,可以将您的路径推向历史记录状态,但这仅在您需要知道先前位置的URL时才需要。
您可以从此处了解有关此功能的更多信息:https://reacttraining.com/react-router/web/api/history
答案 1 :(得分:0)
您可以检查此示例。希望对您有帮助。
import React from "react";
import {BrowserRouter as Router,Switch,Route,Link} from "react-router-dom";
import { withRouter } from "react-router";
export default function BasicExample() {
return (
<Router>
<div>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
</ul>
<hr />
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route path="/about">
<About />
</Route>
</Switch>
</div>
</Router>
);
}
function Home() {
return (
<div>
<h2>Home</h2>
</div>
);
}
const About = withRouter(({history, ...props}) => (
<h1 {...props}>
About
<hr/>
<button onClick={() => {history.push('/')}}>go back</button>
</h1>
));
另一个返回-2的示例
import React from "react";
import {BrowserRouter as Router, Switch, Route, Link} from "react-router-dom";
import {withRouter} from "react-router";
export default function BasicExample() {
return (
<Router>
<div>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
<li>
<Link to="/about/insideabout">Inside About</Link>
</li>
</ul>
<hr/>
<Switch>
<Route exact path="/">
<Home/>
</Route>
<Route exact path="/about">
<About/>
</Route>
<Route path="/about/insideabout">
<InsideAbout/>
</Route>
</Switch>
</div>
</Router>
);
}
function Home() {
return (
<div>
<h2>Home</h2>
</div>
);
}
const About = withRouter(({history, ...props}) => (
<div>
<h1>
About
<hr/>
<button onClick={() => {
// history.push('/')
history.goBack(-1);
}}>go back
</button>
</h1>
</div>
));
const InsideAbout = withRouter(({history, ...props}) => (
<h1 {...props}>
Inside About
<hr/>
<button onClick={() => {
history.goBack();
}}>go back
</button>
<button onClick={() => {
history.go(-2);
}}>go home
</button>
</h1>
));
答案 2 :(得分:0)
对于我来说,弄清楚应用程序的去向是最好的方法,就是简单地使用React Router Link中的state属性。
This article关于如何将状态从Link
传递到组件,确实有助于解释如何使用Link
状态。
基本上,Link
可以将state属性传递给呈现的组件。
<Link to={{ pathname: "/courses", state: { fromDashboard: true } }} />
渲染的组件然后通过props.location.state
这与将道具传递到生成链接的组件一起解决了我的问题! (^ __ ^)