react-router 如何在:id后面嵌套路由

<Route path="/" component={App}>
                <IndexRoute component={Home}/>
                <Route path="basic" component={Basic}>
                    <IndexRoute component={Points}/>
                    <Route component={PointDetail}>
                        <Route path="endpoints/:uuid" component={PointDetail} >
                            <Route path="connect_test" component={Connect_test}/>
                        </Route>
                    </Route>
                

                </Route>
            </Route>
        </Router>

我在PointDetail中使用<Link to={/basic/endpoints/${this.props.params.uuid}/connect_test}><Button type="primary"> 连接</Button></Link>,但是不跳转到Connect_test页面,而是留在当前页面。

请问一下怎么在route中设置使/basic/endpoints/:uuid页面跳转到/basic/endpoints/:uuid/connect_test页面

阅读 5.3k
2 个回答

如下:

<Route path="endpoints/:uuid" component={PointDetail} />
<Route path="endpoints/:uuid/connect_test" component={Connect_test}/>
<Route path="endpoints/:uuid" component={PointDetail} >
  <Route path="connect_test" component={Connect_test}/>
</Route>

上边写法的意思是 Connect_test 作为 PointDetail 的子元素,除非你在 PointDetail 的 render 函数中加入 this.props.children,不然 Connect_test 并不会渲染,改成下边的就行了

<Route path="endpoints/:uuid" component={PointDetail} />
<Route path="endpoints/:uuid/connect_test" component={Connect_test} />
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题