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

React路由器-多个重定向组件的意外重定向行为

佟英武
2023-03-14

我遇到了以下情况:

我有一个反应路由器包装反应组件呈现3路由:

  1. 如果路由匹配/about,则将用户重定向到/about-new。
  2. 如果匹配路由,则显示关联组件。
  3. 如果请求的路由不存在,重定向用户到/404。

见现场示例

我发现,当我点击链接导航到“关于”页面时,路线会变成 /404而不是“/关于新”,当我点击指向不存在路线的链接时,它会尝试导航到该路线而不是“/404”。

React路由器的预期行为是什么?我定义组件的方式有问题吗?或者这是React路由器的错误?

共有2个答案

姬和豫
2023-03-14

在我寻找答案的过程中,我意识到

是的,这是预期的行为。

从代码库来看,我的理解是路由器总是试图找到要渲染的组件;毕竟,React的本质是将JSX元素翻译成JavaScript并输出普通HTML。

如果没有匹配的路由,重定向将被忽略,并继续向下切换。这就是为什么在我的示例中

从这里的代码中可以看到,

在没有

因此,

蒲昀
2023-03-14

您没有About组件的路由。https://codesandbox.io/s/react-router-v5-starter-forked-f715c?file=/src/index.js

 类似资料:
  • 我一直试图做一个简单的重定向到按钮点击的另一个组件,但由于某种原因,它不起作用。我想重定向到/dashboard并从登录显示AdminServices,如下所示: //索引。js //应用程序。js //登录。js //管理服务。js

  • 我正在尝试构建一个简单的组件,它将进行一次API调用,2秒钟后将重定向到另一个页面。为此,我尝试使用react router dom中的重定向组件,但导入失败 我得到一个错误:“react router dom没有导出的成员‘重定向’。” 版本"react-router-dom":"^6.0.0-beta.0",

  • 英文原文:http://emberjs.com/guides/routing/redirection/ 过渡与重定向 在路由中调用transitionTo或者在控制器中调用transitionToRoute,将停止当前正在进行的过渡,并开启一个新的,这也用作重定向。transitionTo具有参数,其行为与link-to助手相同。 如果过渡到一个没有动态段的路由,路由的model钩子始终都会运行。

  • 我意识到以前有人问过我这个问题,请容忍我,因为我还在学习这个问题。我想我已经尝试了所有的解决方案,但是没有运气。 问题是:当重定向到时,它没有呈现预期的组件() 我已经实现了一个,如下所示; privaterout.js 这就是我使用它的地方; index.js 在这个问题中要补充几点: 我确认重定向确实发生在(我通过将

  • 我在React路由器2.2.1中使用React 15.0.1。我将应用程序用作父组件,它呈现从路由器处理程序传递的子组件。 这是我的导航栏组件。 这些是我的路线处理程序。当用户在路由上着陆时,将对其进行身份验证检查。如果身份验证失败,它们将被重定向到登录路径。 当应用程序组件第一次挂载导航栏和子组件时,它会检查身份验证并相应地添加到导航栏的链接。成功登录后,当用户从登录路由重定向到索引路由时,子组

  • 我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档