问题标签 [react-router]

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 投票
3 回答
37830 浏览

reactjs - 如何使用 React-Router 根据 URL / 路径更新 ReactJS 组件

使用 React-Router 时如何根据 URL / 路径更新 ReactJS 组件?

下面的代码有效,但这是正确的方法吗?似乎有很多代码可以进行简单的更新。我希望路由器中有一个有状态的 API 调用来自动处理这种情况。

0 投票
1 回答
3118 浏览

reactjs - 我可以为两条路线使用相同的路线处理程序吗

我定义了这两条路线:

因此,两条路由都使用同一个名为 Register 的处理程序。

registerpromotion路由的情况下,我传递了一个属性,而在register路由的情况下,我没有。

我无法让它工作-promotionCode 属性始终未定义。

有谁知道您是否可以对两条路线使用相同的处理程序?

非常感谢!

0 投票
1 回答
4429 浏览

javascript - react-router 未渲染的嵌套详细信息路由

我正在使用 react-router 插件来设置我的路线我想提供两条路线list/list/:id(很常见)我所拥有的和正在工作的是:

但我正在努力让我的“细节”路线发挥作用。我尝试的是:

首先,这目前不起作用,DetailsComponent访问 list/123 时未呈现 my (例如)

其次,即使这可行:我将如何管理将我收藏中的一个模型“向下”传递给DetailsComponent?

0 投票
2 回答
1890 浏览

javascript - browserify loading ReactJS twice with react-router

I use browserify to bundle ReactJS and (among others) react-router. But when I look in the console, the message ...

... shows up twice (!) telling me that in fact two ReactJS instances are running.

If I look in my browserified JS I saw the ReactJS source only once.

How would I avoid this?

package.json:

When I run npm ls | grep -i react I get:

0 投票
3 回答
3795 浏览

reactjs - 在没有 JSX 的情况下使用 react-router

我正在尝试通过 javascript API 找到使用 react-router 的示例,但到目前为止找不到任何东西。

我的目标是将 react-router 与试剂和 clojurescript 一起使用。因此,如果有人已经完成了这项工作(即使是使用 Om),我将不胜感激朝着正确的方向前进。否则,只是一个没有 JSX 的直接 javascript 示例会很有帮助。

编辑 1——接近解决方案

感谢@FakeRainBrigand 帮助将 JSX 翻译成普通的 JS。

这是 React.js 0.11.2 版本(这是当前 Reagent 版本使用的版本——0.4.3)。

JSXTransformer.js提示:您可以使用您的 React 版本执行 JSX->JS 转换。只需将其包含在您的页面中并使用浏览器的开发者控制台执行JSXTransformer.transform('/** @jsx React.DOM */<Route location="history">...</Route>').code

这是 Clojurescript 版本:

不幸的是,Reagent 默认创建的组件似乎不是“标准”的 React 组件,在React.isValidClass(myReagentComponent) === false. 所以剩下的就是弄清楚如何以通过该测试的形式生成组件。我为此发布了一个Stack Overflow 问题

0 投票
1 回答
566 浏览

reactjs - Reagent 生成一个通过 React.isValidClass(component) 的 React 组件?

我正在尝试在我的 Clojurescript Reagent 项目中使用 react-router。问题是,react-router 要求组件 pass React.isValidClass(component),在 React 0.11.2 中定义为:

Reagent 似乎将组件生成为对象而不是函数。这是我的代码:

有没有人想出如何使这种互操作工作?

0 投票
1 回答
2262 浏览

reactjs - React-Router:导入和使用命名 URL

是否有一种正式的方法可以导入我定义的路由并从另一个 React 组件重定向到该路由器中的命名模式?

假设我的路线如下所示:

我有一个这样的组件:

两个问题:

  1. 我应该使用window.location.replace()还是其他一些 React-Router 方法来处理程序重定向?
  2. 有没有办法导入路由器并重定向到命名路由?

我想写一些类似的东西:

0 投票
2 回答
3579 浏览

javascript - 使 react-router 不会破坏 Jest (reactJs) 测试

我目前正在尝试将 Jest 测试添加到 React 应用程序(在此处找到)。

但是,当我运行以下测试时,

我收到以下错误:

我的应用程序和CategoryPage组件都专门使用 react-router。CategoryPage 包含一个使用 react-router 进行身份验证的 mixin。根据我自己的调试,我发现当 Jest 尝试调用makeHrefreact-router 的内置导航方法之一时发生错误。

为了解决这个问题,我首先尝试调用jest.dontMock('react-router'),但这没有任何效果。问题似乎是,通过不嘲笑CategoryPage, jest 将自动且不可逆转地包含其所有依赖项,未嘲笑。

这个问题很难解决的部分原因是因为大多数使用 Jest 和 React 的人似乎没有测试他们的组件,要么是因为他们不是以测试为中心,要么是因为他们使用 Flux 并且只测试 Stores、Dispatchers 等. 我们还没有使用 Flux,所以这不是我们的选择,但可能是我们将来必须过渡到的东西。

编辑 1:如果我删除了测试通过,jest.dontMock('../js/components/CategoryPage.jsx')那么就不可能实际测试该组件的功能。

编辑 2:当我排除时,jest.dontMock('jquery')我得到另一个与我用来创建模态的 mixin 相关的错误:

编辑 3:我似乎已经将错误隔离到 react-router 的 Navigation mixin,它调用this.context.makeHref. React 团队this.context从 .9 版本开始就弃用了,所以我相信这可能是问题的根源。因此,欢迎任何解决方法或修复this.context方法。

0 投票
0 回答
342 浏览

javascript - React Router 0.11.1 routes all requests to Home

I am having the problem that React Router 0.11.1 routes all paths to my default handler, i.e. Home, even though I have a specific handler for the /about path:

Also, the router seems to attach #/ automatically to the end of the URL, which is confusing. Can someone please tell me how to fix my routing, so that I can access the About handler?

See my full project at GitHub.

0 投票
3 回答
1918 浏览

javascript - 是 var { Route, Redirect, RouteHandler, Link } = 路由器;在 Javascript 中有效吗?

这在 Javascript 中是什么意思?我在react-router示例中发现了这一点

通过browserify运行时出现以下错误。

https://github.com/rackt/react-router/blob/master/examples/dynamic-segments/app.js

Esprima 也给出了同样的错误: http ://esprima.org/demo/validate.html