Reactjs 导航到IndexRoute的子组件,React路由器

Reactjs 导航到IndexRoute的子组件,React路由器,reactjs,react-router,redux,Reactjs,React Router,Redux,我在这里打开了一个问题: 有人建议我在这里问这个问题 我希望能够链接到IndexRoute的子组件,以便在配置如下所示时: <Route path="/" component={App}> <IndexRoute component={Promote} /> <Route path="earn" component={Earn}/> <Route path="vision" component={Vision}/>

我在这里打开了一个问题: 有人建议我在这里问这个问题

我希望能够链接到IndexRoute的子组件,以便在配置如下所示时:

<Route path="/" component={App}>
    <IndexRoute component={Promote} />
    <Route path="earn" component={Earn}/>
    <Route path="vision" component={Vision}/>
    <Route path="contact" component={Contact}/>
    <Route path="demo" component={Demo}/>
    <Route path="tos" component={Legal}/>
    <Route path="privacy" component={Legal}/>
    <Route path="dmca" component={Legal}/>
</Route>

我想链接到的组件是Promote的子组件,我应该能够执行/注册,然后加载我的索引路由,然后滚动/导航到所需的组件,而不是我的Promote组件。但是,我不确定如何在路由配置中指定该路由。有什么想法吗


我想到的一些可能的方法是重写componentDidMount并检查路径,然后滚动到该组件,或者使用一个Oneter钩子来实现同样的事情,第一种方法看起来更简洁。我怀疑使用React路由器没有真正的方法来实现这一点。

您使用的是
browserHistory
历史实现(而不是
hashHistory
)吗?如果是这样,您应该能够将哈希片段附加到url。例如,如果
SignUp
组件位于
Promote
中,并且
SignUp
组件的容器元素的id为
SignUp
,则可以使用如下代码在其他组件中链接到它:

<IndexLink to={{ pathname: '/', hash: '#signup' }}>Sign Up</IndexLink>
<a href="#signup">Sign Up</a>
componentDidMount()
中的
this.scrollToHash()
的初始调用会在
Promote
初始装载时导致目标元素滚动到视图中。hashchange事件侦听器处理指向
升级
组件中的
注册
组件的链接。说到这里,需要注意的是,从
Promote
内部到
SignUp
的任何链接都应该使用


如果您有任何问题,请随意使用它并探索代码,然后告诉我。

您是否使用
browserHistory
历史实现(而不是
hashHistory
)?如果是这样,您应该能够将哈希片段附加到url。例如,如果
SignUp
组件位于
Promote
中,并且
SignUp
组件的容器元素的id为
SignUp
,则可以使用如下代码在其他组件中链接到它:

<IndexLink to={{ pathname: '/', hash: '#signup' }}>Sign Up</IndexLink>
<a href="#signup">Sign Up</a>
componentDidMount()
中的
this.scrollToHash()
的初始调用会在
Promote
初始装载时导致目标元素滚动到视图中。hashchange事件侦听器处理指向
升级
组件中的
注册
组件的链接。说到这里,需要注意的是,从
Promote
内部到
SignUp
的任何链接都应该使用


请随意使用它并探索代码,如果您有任何问题,请告诉我。

我并没有真正了解您想要的路由器结构。你能像一个伪代码一样写,或者再解释一下吗?尤其是子组件。它叫什么等等。我并不是真的按照你想要的路由器结构。你能像一个伪代码一样写,或者再解释一下吗?尤其是子组件。它叫什么等等。嗯,这是一个有趣的故事。通过在redux商店中设置状态,我取得了一定的成功,但我非常喜欢这个。我可能会用这个,这是个有趣的地方。通过在redux商店中设置状态,我取得了一定的成功,但我非常喜欢这个。我可能会使用这个和combo中的商店