- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
路由器 2.0。我有这样的路线设置。
<Route path='/' component={app}>
<IndexRoute component={require('./dashboard')} onEnter={logger.log} />
<Route path='signup' component={require('./signup')} onEnter={logger.log} />
<Route path='login' component={require('./login')} onEnter={logger.log} />
</Route>
如您所见,我多次执行 onEnter={logger.log},这是多余的。
我尝试将 onEnter 处理程序放在应用程序的根路由上,但它只调用了该处理程序函数一次。当我从登录导航到注册时,不会为 ex 调用它。
有什么方法可以让我声明所有路由的 onEnter 只调用 logger.log 一次,这样我就不必一次又一次地重复同样的事情。
最佳答案
您可以使用 OnChange钩在根 Route 上
onChange(prevState, nextState, replace, callback?)
当位置发生变化时在路线上调用,但路线本身既不进入也不离开。例如,这将在路线的子项更改或位置查询更改时调用。它提供前一个路由器状态、下一个路由器状态,以及重定向到另一条路径的功能。 this
将是触发 Hook 的路由实例。如果 callback
被列为第四个参数,则此 Hook 将异步运行,并且转换将阻塞直到 callback
被调用。
像这样
<Route path='/' component={app} onChange={logger.log} >
<IndexRoute component={require('./dashboard')} />
<Route path='signup' component={require('./signup')} />
<Route path='login' component={require('./login')} />
</Route>
请注意,签名不同,因此在这种情况下,您必须确保 logger.log 从 nextState
获取必要的数据。
关于reactjs - 如何在 React Router 的 Route 上多次调用 onEnter 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36371695/
我有一个问题,我想在路由渲染中的组件之前分派(dispatch)我的 Action (isLoading),但是当我在 onEnter 事件中调用分派(dispatch)时,React 给出错误: “
我正在寻求有关我的 React Router onEnter 属性的帮助。似乎 onEnter 属性会在我的应用程序中的每个组件上触发,尽管我没有指定这一点。很确定这与我的路由器设置有关。 我的代码:
我有一个带有两个输入字段、一个文本和一个发送按钮的表单。我想通过 jQuery .ajax() 提交而不重新加载文档。只要单击按钮,它就会起作用,但当您按 return/enter 时,它就不起作用,
我正在使用 React Router onEnter 属性来处理身份验证,如下所示,也如 "auth-flow" example 中所示. function requireAuth(nextSt
我想使用 onEnter 回调进行提取,但我不知道如何读取 Route 组件中的 URL 参数。 我有这条路线 我想用bookId从路径作为 onBookLoad() 的函数参数.是否可以? 最佳答
当将redux-observable与react-router一起使用时,按照文档here中的说明异步添加新的史诗是否有意义?在路由更改期间,在react-router的onEnter钩子(Hook)
我正在构建一个基本的 react 登录应用程序,用于教育目的,并验证我正在使用 React-router 的 onEnter prop 功能的路线 import axios from 'axios';
我正在尝试将路由身份验证添加到我在 React 路由器上的 reactjs 应用程序,但是每当我将我创建的身份验证功能添加到特定路由上的 on enter 属性时,我都会收到以下错误。 未捕获的 Ra
我有一个使用redux-router的工作客户端应用程序。 我从我的 api 分派(dispatch) user 页面的初始状态。 我的路线文件: export default function ({
我正在切换到新版本的 ui-router (1.0.0-alpha.5) 并试图找出在哪里使用 onEnter 钩子(Hook)以及在哪里 onStart: $transitions.onStart(
我正在构建一个应用程序,我想在用户进入和离开路线的那一刻切换服务中的属性。为此,我需要了解 onEnter 中的州名。和 onExit钩子(Hook)。这对于 onExit 来说相对容易。钩子(Hoo
我正在玩弄 frida,特别是 iOS 上的 frida-trace。 当一个方法被 Hook 并且我可以在 onEnter 中记录参数时,有没有办法让这个函数调用提前结束而不调用原始方法? 我已经尝
感谢来自 SO 社区的一些大力帮助,我有一个使用 ui-router 使用多个状态/ View 的工作 Angular SPA。图书馆。但是,我的行为似乎与 angular-ui-router 不一致
我想使用react-router的onEnter钩子(Hook)在路由加载时检查我的redux存储中的变量。 根据文档,onEnter: ...receives the next router sta
我目前正在尝试构建一个简单的react-redux应用程序,该应用程序在后端包含学生和校园数据。 OnEnter曾经在这里工作,但它在新的react-router中不存在。 此应用程序尝试在开始时加载
好的,所以我有一个 url "/securepage"的状态,每当用户尝试访问它时我都需要检查它。所以我读到有一个我可以使用的 onEnter 函数。但我似乎无法从那里获得范围或服务。我究竟做错了什么
我正在开发一款游戏。并在我的游戏中使用音频。对于音频,我导入了 SimpleAudioEngine 框架。我在 onEnter 方法中设置音频,其他声明和编码在 init 方法中。在 onEnter
我有一个 Angular 应用程序,其 ui.router 模块有一个 onEnter 方法。我想在单击状态菜单项并且状态更改时调用函数。但现在我的应用程序无法正常工作。例如。我访问 app.com/
在 onEnter 钩子(Hook)的所有 React-router 示例中,该钩子(Hook)都是同步的。在问题中,建议保持这种方式。在钩子(Hook)内登录某人的惯用方法是什么? 用户故事: 客户
我正在开发一款游戏。并在我的游戏中使用音频。对于音频,我导入了 SimpleAudioEngine 框架。我在 onEnter 方法中设置音频,其他声明和编码在 init 方法中。在 onEnter
我是一名优秀的程序员,十分优秀!