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

React路由器的索引路由在帮助您的组件执行诸如onEnter钩子之类的操作方面的目的是什么?

姚信鸥
2023-03-14

我没有从下面的 React 路由器获取文档:

但是现在Home不能参与路由,像onEnter hooks等。您在与帐户和报表相同的位置进行渲染,因此路由器允许您将Home作为带有IndexRoute的一级路由组件。

他这里路由是什么意思?什么是onEnter钩子?

共有2个答案

张高澹
2023-03-14

这里的文档稍微简单一些:

想象一下,当 URL 为 / 时,我们希望在 App 内部呈现另一个组件。目前,在这种情况下,应用程序渲染方法中的这个.props.子是未定义的。我们可以使用

至于onEnter,这里的文档更好:

路由还可以定义在确认转换后调用的onEnteronLeavehook。这些钩子对于各种事情都很有用,比如输入路由时需要身份验证,以及在卸载路由之前将内容保存到持久存储。

公冶鸣
2023-03-14

由于< code>App正在包装其他路由,匹配给定url的路由被传递给< code>App以通过< code>this.props.children呈现。因此,如果您通过诸如< code>{this.props.children ||这样的语句呈现< code>Home,您将无法访问react-router的< code>Home挂钩

当您将Home定义为IndexRoute时,它是一个不同的路由,将匹配任何路由App匹配的内容。这样,我们不需要App中的or子句,我们可以通过{this.props.children}渲染子路由

 类似资料:
  • 我很难理解这两者之间的区别: 这是: 使用React路由器时,在

  • 如果我将路由折叠起来,这样看起来就像: 工作很好。我嵌套的原因是因为我将在“dashboard”下有多个子项,并且希望它们都在URL中以为前缀。

  • 大家好,我不知道发生了什么事。我有以下路线: 只有路径为“/”的路由和路径为“/patient/:id”的路由才有效,其他3条路由只是没有显示与路径对应的组件。 这就是我进入路线的方式。我有一个标题组件,上面有正确的链接。见下文 在头组件中,我从'react router dom'导入{Link};在我声明路由的文件中,我从'react router dom'导入{BrowserRouter,Ro

  • 在我的React项目中,我有: 没有标题的登录组件 问题:我应该如何构建我的路由器从登录页面开始,当我点击登录时,路由器会把我带到仪表板?

  • 使用redux和反应路由器,我想访问路由指定的组件以外的组件上的路由参数。 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数。 我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出re

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