问题标签 [react-router-v4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
880 浏览

reactjs - 如何使用 react-router 4 导航嵌套组件

我有一个带有按钮、通用背景和通用标题以及更改嵌套组件的屏幕。在此屏幕内,我想通过单击按钮来更改嵌套组件。嵌套的组件必须通过左右按钮在一个圆圈内相互更改。到目前为止,我做了很多尝试来实现这一点(我尝试使用 withRouter 来实现),我只给你我尝试的代码之一,但所有这些都不起作用。我没有收到任何错误,我看到浏览器中的路线正在改变,但屏幕没有,我只看到第一个嵌套组件。SOF 上有关于此的问题,但它们与旧版本的 react-router 有关。这是我的代码,如果您需要更多信息,请随时在评论中提问。

编辑:虽然我接受了给定的答案,但我没有测试它,在我的项目中我使用了这个解决方案:

然后在信息本身:

0 投票
0 回答
120 浏览

reactjs - 我们如何在 react-router 4.0 中维护 OidcProvider?

我们将把我们的 react-router 从版本 3 更改为 4.0,之前我们维护 redux-store 并将 store 传递给组件,如下所示:-

如何在我们的 react-router 4.0 中使用相同的 OidcProvider?请帮助我。

0 投票
1 回答
7432 浏览

reactjs - React Router 4 + history.push 触发 PUSH 和 POP

所以我在我的应用程序中设置了以下路线:

在应用程序的不同部分,我使用 history.push 以编程方式在应用程序中导航,如下所示:

奇怪的是,当该代码运行时,它会触发两个操作 - 一个 PUSH 和一个 POP 导致应用程序导航两次。这是我们在单次推送后从历史监听器日志中得到的信息:

查询参数正在正确存储,其他一切似乎都工作正常,但我想知道是什么造成了这个问题,这样我的用户就不必返回两次去他实际应该去的地方。

顺便说一句,这是我如何想出历史“插件”的方法:

还有另一个实例,推送更改了 url 位置栏,但实际上并没有导航到任何地方,但我将其保存为另一个问题。

难道我做错了什么?感谢任何帮助!谢谢!

0 投票
1 回答
252 浏览

react-router-v4 - 在 actioncreator 和 react-router v.4 中使用历史重定向

在调用 API 并收到响应后,我正在尝试以编程方式在动作创建者中导航。我做了什么:我用这段代码创建了一个文件utils/History.js :

然后在动作创建者中使用它:

当然,我让相关组件知道这个路由。如果我使用<NavLink to='/sign-in'>,它可以工作。但是如果我想在 History.replace('/sign-in') 或 History.push('/sign-in') 上渲染这个组件,我可以在地址栏中看到 'localhost:8080/sign-in',但没有出现相关组件。请帮我弄清楚。

0 投票
19 回答
195614 浏览

javascript - 如何在 React Router 4 中实现经过身份验证的路由?

我试图实现经过身份验证的路由,但发现 React Router 4 现在阻止了它的工作:

错误是:

警告:你不应该在同一条路线上使用<Route component>和;将被忽略<Route children><Route children>

在那种情况下,实现这一点的正确方法是什么?

它出现在react-router(v4)文档中,它建议类似

但是有可能在将一堆路由组合在一起的同时实现这一点吗?


经过一番研究,我想出了这个:

在 中调度一个动作是否正确render()?感觉不对。componentDidMount使用其他钩子或其他钩子似乎也不正确。

0 投票
1 回答
1772 浏览

reactjs - React Router v4 不显示组件

当我导航到 localhost:3000/signup 时,该组件未显示是因为反应路由器已更新到 v4 并且您在反应中路由的方式现在已经改变了吗?

我有我的main.js档案

注册组件

我正在使用反应路由器 v4,也使用 Meteor。

0 投票
13 回答
121822 浏览

react-router - 如何在 react-router v4 中获取查询参数

我在我的项目中使用 react-router-dom 4.0.0-beta.6 。我有如下代码:

我想在HomePage组件中获取查询参数。我找到了location.search参数,它看起来像这样:?key=value,所以它是未解析的。

使用 react-router v4 获取查询参数的正确方法是什么?

0 投票
1 回答
562 浏览

url-parameters - 将搜索字符串转换为查询对象(切换到 react-router v4 后)

切换到 react-router 4.0 后,我愚蠢地浪费了太多时间试图弄清楚如何获取 location.search 字符串并将其设置为常规查询对象。

即使在最终意识到他们不再处理查询参数(在 React Router v4 中解析查询参数)并转向URLSearchParams之后,我还是不记得如何轻松地从迭代器中提取对象。下面回答。希望它可以帮助某人。

0 投票
1 回答
488 浏览

reactjs - 安装'react-router'会给出不一致的版本

我通过这样做安装了反应路由器:

npm 安装反应路由器

我安装的内容与我在互联网上阅读的几乎所有教程都不一致。一个例子:https ://css-tricks.com/learning-react-router/

首先,它缺少IndexRouteIndexRoute在哪里?我似乎无法让我的任何示例正常工作。

0 投票
1 回答
166 浏览

webpack - 如何使用 ReactQL 进行代码拆分?

开箱即用,ReactQL带有几个定义如下的“页面”:

但是,HomePage只是在同一个文件中定义的组件。假设在您导航到该页面之前我不想加载所有代码,我如何“代码拆分”并将这些页面中的每一个移动到单独的 webpack 块中?

请注意,ReactQL 支持 SSR 而 React-Router 据说支持。我问的可能吗?