reactjs - 如何使用后退按钮返回上一页/使用react-router-dom单击链接

标签 reactjs react-router-v4

我正在使用React 15.6和react-router 4

我在应用程序 A、B、form1、form2、C 中有 5 个页面。form1 和 form2 有“后退”和“下一步”按钮。 这是导航流程 -

(A/B) --> form1 --> form2 --> C.

用户可以从 A 或 B 访问 form1。

我的问题是 - 如果用户从 A 转到 form1,然后转到 form2,那么在返回到之前的页面时,用户如何通过单击 form1 上的“后退”按钮再次转到 A。

如果只有 A 那么我们可以使用

<Link to="path/to/A"/>

在 form1 上单击“后退”按钮。

但是如果我们有 A 和 B 作为可能的路径,那么我们无法确定用户是从 A 还是 B 来到 form1。

可以帮助我们如何在这种情况下管理先前的路径状态。

最佳答案

我相信您的情况与身份验证示例非常相似,您必须记住用户来自的页面 https://reacttraining.com/react-router/web/example/auth-workflow

在页面 A 和页面 B 中,您可以添加链接

<Link 
  to={{ 
    pathname: '/form1',
    state: { from: props.location } // or '/A' or '/B'
  }}
/>

在 Form1 中,您需要访问 location,因此您可能需要使用 withRouter

<Link to={props.location.state.from}>
  Back
</Link>

如果您需要转到 Form2 并且仍然记得这条路径,那么您可能应该继续传递状态

关于reactjs - 如何使用后退按钮返回上一页/使用react-router-dom单击链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49583333/

相关文章:

es6-class - react 路由器 : how to pass "match" object into a component declared as an ES6 class?

react-router-v4 - 使用组件页面上的 URL 来通过 React Router 识别和传递来自父级的状态数据?

react-router-v4 - 隐藏某些路线上的导航栏 - React Router V4

javascript - 如何确保我正在阅读最新版本的状态?

javascript - 如何在 React 中将重复的 JSX 抽象为高阶组件

javascript - 在 React 应用程序中切换到 TypeScript 的问题

javascript - 路线不匹配

reactjs - 如何在reactjs中的另一个应用程序中创建可重用的组件?

reactjs - SQL Server 中的时区不匹配

javascript - 单击 ReactJs 中表格行中的链接时如何在不同页面中呈现组件