javascript - 如何在React中将路由与index.js分离

标签 javascript reactjs redux react-router

我尝试使用 index.js 中的以下代码将路由分离到单独的文件:

import routes from './routes';
ReactDOM.render(
    <Provider store={store}>
        <Router routes={routes}/>
    </Provider>
    , document.getElementById('root')
);

我的routes.js 看起来像这样:

export default (
    <Switch>
        <Route exact path="/" component={AppComponent}/>
        <Route exact path="/products" component={ProductContainer}/>
        <Route path="/products/:productId" component={AddProductComponent}/>
    </Switch>
);

由于某种原因,我的页面显示为空白,并显示此代码。

如果我像这样将所有路由包装在index.js中,它就可以完美地工作:

ReactDOM.render(
    <Provider store={store}>
        <Router>
            <Switch>
                <Route exact path="/" component={AppComponent}/>
                <Route exact path="/products" component={ProductContainer}/>
                <Route path="/products/:productId" component={AddProductComponent}/>
            </Switch>
        </Router>
    </Provider>
    , document.getElementById('root')
);

我会保持这样,但我也想分成单个文件路由处理。

最佳答案

Router 只是一个允许 children 属性的 React 组件。将您的路线渲染为组件:

import Routes from './routes';
ReactDOM.render(
  <Provider store={store}>
    <Router>
      <Routes />
    </Router>
  </Provider>
  , document.getElementById('root')
);

这里是一个可以玩的示例工作代码和盒子:https://codesandbox.io/s/ywvn59y7rj

关于javascript - 如何在React中将路由与index.js分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54267010/

相关文章:

javascript - redux如何管理store中的大数据?

javascript - 如何使用 javascript 每 X 秒刷新一次浏览器?

javascript - 谷歌表格中的边栏功能 : clicking a button to open a new 'page' within the sidebar

Javascript Redux - 如何通过 id 从商店获取元素

reactjs - 除了我不想在 redux-persist 中清除的内容之外,如何清除所有内容?

javascript - 如果正在分派(dispatch)某个操作,是否会调用每个 Redux reducer ?

javascript - Socket 无法加载资源服务器(404 错误)

javascript - 检查该域是否已在浏览器中打开

java - 解析错误: Unexpected token, expected “,” in react.js

reactjs - Axios get in url 有效,但第二个参数作为对象则无效