当前位置: 首页 > 知识库问答 >
问题:

如何在React路由器v5中推送到历史?

张丁雷
2023-03-14

是否可以创建一个全局历史文件来管理react-router-dom v5上的createBrowser历史()?我知道V5有使用历史()作为获取历史的一种方式。但是有没有可能从任何地方检索历史记录,比如我没有使用函数组件的情况?

在V4上,我可以创建一个文件history.js:

import { createBrowserHistory } from 'history';
export default createBrowserHistory();

它在V4上工作https://codesandbox.io/s/react-router-v4-nfwr0

它在V5上不工作-它更新URL,但重定向到“未找到”https://codesandbox.io/s/react-router-v5-not-working-jlrep

共有2个答案

汪思博
2023-03-14

我这样做就解决了这个问题。看看我做了什么

这是密码

import {createBrowserHistory}  from 'history';
import store from 'store';
export default createBrowserHistory({
    basename:  store ? store.getState().productionBaseUrl : ''
});

我导入Redux的原因是项目在nginx根文件夹上没有脉冲。所以我应该添加一个basename。如果你不需要它,你可以删除它。

然后你可以在自己的网络中使用它。如何使用?让我给你看看代码。

// if my history in src/router/
import history from 'router/history';

history.push(`${your router address}`)

历史的push方法可以传递一个对象,比如originprops。但是它总是在子路由器中刷新。所以在使用时传递一个字符串。

戴浩初
2023-03-14

正如医生所说,你应该使用v4的历史工作的反应路由器v5。

https://github.com/ReactTraining/history

版本4的文档可以在v4分支上找到。版本4用于React路由器版本4和5。

 类似资料:
  • 我在想这样的事情: 前台有一个不同的布局和风格与管理区域。所以在frontpage中的路由是home、about等等,其中一个应该是子路由。 /home应该呈现到Frontpage组件中,而/admin/home应该呈现在后端组件中。 最终解决方案: 这是我现在使用的最终解决方案。这个例子也像传统的404页面一样有一个全局错误组件。

  • 问题内容: 在当前版本的React Router(v3)中,我可以接受服务器响应并用于转到相应的响应页面。但是,这在v4中不可用,我不确定哪种适当的处理方式。 在此示例中,使用Redux,当用户提交表单时, components / app-product-form.js 调用。服务器返回成功后,该用户将被带到“购物车”页面。 如何从React Router v4的功能重定向到购物车页面? 问题答

  • 我在从React路由器v3迁移到v4时遇到了一些小问题。在v3中,我可以在任何地方执行此操作: 如何在v4中实现这一点。 我知道,当您在组件中时,我可以使用hoc、react context或event router道具。但我不是这样。 我正在寻找v4中组件的外部导航的等价性

  • 我有一个路由器像下面: 以下是我想要实现的目标: 如果未登录,将用户重定向到 如果用户在登录后试图访问,请将其重定向到root 因此,现在我尝试在

  • 问题内容: 我目前正在使用React Router v4来嵌套路由。 最接近的示例是React-Router v4文档中的route配置 。 我想将我的应用分为2个不同的部分。 前端和管理区域。 我在想这样的事情: 前端的布局和样式与管理区域不同。因此,在首页中,回家的路线大约应该是子路线。 / home 应该呈现在Frontpage组件中, / admin / home 应该呈现在Backend

  • 假设在route 中给了我一个< code>item-list数组。item-list.component.html看起来像这样: 我试图做的是将对象从数组推送到下一页(或路由) 目前,我有它的方式建立与2资源 我意识到有一个不必要的API调用 我将如何处理这个问题? 注意:在Ionic3中可以这样做:< code>navCtrl.push('ItemPage ',{ item:item });