根据 React Router 5.1文档,应该可以看到“应用程序现在在哪里,你想要它去哪里,甚至它在哪里”。在我的应用程序中,我需要查看“它在哪里” -在到达特定位置之前我访问了哪些位置。
更确切地说; 我希望找到匹配特定模式的先前位置。该位置可能是两三个位置之前的位置。
但是 - 我无法弄清楚如何执行此操作。
实现这一目标的最佳和推荐方法是什么?
亲切的问候/K
根据 React Router 5.1文档,应该可以看到“应用程序现在在哪里,你想要它去哪里,甚至它在哪里”。在我的应用程序中,我需要查看“它在哪里” -在到达特定位置之前我访问了哪些位置。
更确切地说; 我希望找到匹配特定模式的先前位置。该位置可能是两三个位置之前的位置。
但是 - 我无法弄清楚如何执行此操作。
实现这一目标的最佳和推荐方法是什么?
亲切的问候/K
在 React Router 中,如果您需要对历史记录中的先前路径做出react,则可以使用 goBack() 方法。此外,有可能将您的路径推送到历史记录状态,但只有在您需要知道先前位置的 URL 时才需要这样做。
您可以从此处阅读有关此功能的更多信息:https : //reacttraining.com/react-router/web/api/history
你可以检查这个例子。希望对你有帮助。
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>
));
我发现对我来说,查看应用程序在哪里的最佳方法是简单地使用React Router Link 中的 state 属性。
这篇关于如何从Link组件传递状态的文章确实帮助解释了如何使用Link状态。
基本上Link可以将 state 属性传递给呈现的组件。
<Link to={{ pathname: "/courses", state: { fromDashboard: true } }} />
渲染的组件然后通过访问状态 props.location.state
这与将props传递给生成链接的组件相结合解决了我的问题!(^__^)