React Router的索引路由在帮助您的组件执行onEnter挂钩等操作时的目的是什么?

时间:2016-12-21 18:48:17

标签: reactjs react-router

我从下面的React Router获取docs

  

但是现在Home无法参与路由,就像onEnter挂钩一样,   您在与帐户和报表相同的位置呈现,所以   路由器允许您将Home作为第一类路由组件   使用IndexRoute。

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

2 个答案:

答案 0 :(得分:1)

docs here稍微简单一些:

  

想象一下,当我们想要在App中渲染另一个组件时   网址是/。目前,这个.pros.children在App的渲染方法中   在这种情况下是未定义的。 我们可以使用<IndexRoute>来指定   &#34;默认&#34;页。

至于onEnter docs here更好:

  

路由还可以定义一次调用的onEnteronLeave挂钩   过渡已得到确认。这些钩子适用于各种各样的   在输入路线时要求auth并保存东西的事情   路径卸载前的持久存储。

答案 1 :(得分:1)

由于Error:Execution failed for task ':app:clean'. > Unable to delete directory: /mnt/D/Document/WorkSpace/Android/Test/app/build/intermediates/exploded-aar/com.android.support/cardview-v7/25.0.0/jars 正在包装其他路由,因此匹配给定网址的路由将传递到Error:Execution failed for task ':app:clean'. > Unable to delete directory: /mnt/D/Document/WorkSpace/Android/Test/app/build/intermediates/exploded-aar/com.android.support/support-compat/25.0.0/jars/libs 以通过App呈现。因此,如果您通过App等语句渲染this.props.children,则无法访问Home的react-router&#hook}。一个这样的钩子是Home,它会在输入路线时触发回调。

当您将{this.props.children || <Home/>}定义为onEnter时,它是一条独特的路线,可匹配Home匹配的路线。这样,我们就不需要IndexRoute中的or子句,我们可以通过App

呈现子路线