javascript - React Router 不匹配嵌套路由

标签 javascript reactjs react-router react-redux

我在使用 React Router 时遇到了一个小问题。我有以下路由配置:

ReactDOM.render(
    <Provider store={store}>
        <Router history={browserHistory}>
            <Route path="/" component={ProjectManagerApp}>
                <IndexRoute component={MainDashboard} />
                <Route path='/projects/:id' component={ProjectView}>
                    <IndexRoute component={ProjectPanel} />
                    <Route path='/todos' component={ProjectTodos} />                    
                </Route>                
                <Route path='*' component={NotFound} />            
            </Route>
        </Router>
    </Provider>
    ,
    document.getElementById('app')
);

问题出在“ProjectView”内嵌套的路由。 IndexRoute 正在工作,因此,例如,当我访问“http://localhost:3000/projects/38d38234-5bdb-474a-8db8-6206cefe3e87 ”时,将呈现项目面板组件。但是当我访问“http://localhost:3000/projects/38d38234-5bdb-474a-8db8-6206cefe3e87/todos”时,它落在NotFound路线上。所有其他路线都工作正常。我正在使用 React Router 3。有人可以帮助我吗?

谢谢

最佳答案

您用尾随/指定的所有路由都将相对于根目录,因此

<Route path='/todos' component={ProjectTodos} />

可以通过http://localhost:8080/todos事件访问,但它是一个嵌套路由

要按您想要的方式访问,请删除尾随的 /。指定您的路线,例如

ReactDOM.render(
    <Provider store={store}>
        <Router history={browserHistory}>
            <Route path="/" component={ProjectManagerApp}>
                <IndexRoute component={MainDashboard} />
                <Route path='projects/:id/' component={ProjectView}>
                    <IndexRoute component={ProjectPanel} />
                    <Route path='todos' component={ProjectTodos} />                    
                </Route>                
                <Route path='*' component={NotFound} />            
            </Route>
        </Router>
    </Provider>
    ,
    document.getElementById('app')
);

关于javascript - React Router 不匹配嵌套路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42812138/

相关文章:

javascript - 当表格有滚动条时移动到 HTML 表格中的选定行

javascript 显示/隐藏内存

javascript - React Router 4 身份验证和重定向

javascript - 函数未使用定义的变量执行

javascript - 父窗口如何知道它的子窗口关闭了?

javascript - React 组件不会在更新状态时重新渲染

javascript - 如何在 react 中解析xml文件?

javascript - 带有两个键的导航在 React Native 中不起作用

javascript - 将 props 传递给 react-router v4 中的路由器组件

javascript - 如何使用react-router-dom直接链接来渲染填充了 Prop 的通用帖子组件?