reactjs - React 应用程序中 Provider 和 Router 的顺序

标签 reactjs react-router react-router-v4 react-router-dom

我正在将我的 React 应用程序设为 SPA 并添加 React Router 4react-router-dom到它。目前,我的 home 组件的入口点如下所示:

render (
    <Provider store={store}>
        <App>
            <Home />
        </App>
    </Provider>,
    document.getElementById('app')
);

对于另一个模块,我有一个不同的入口点,而不是 <Home />组件,我有一个不同的组件,但其余部分看起来几乎相同。

两个问题:

  1. 如果<BrowserRouter>有关系吗?应该包裹 <Provider store={store}>或者相反?看起来像react-router-dom不使用 redux 存储,但我仍然认为 <Provider>应该包裹 <BrowserRouter> -- 请参阅下面的代码。
  2. 我还将“Home”组件删除,因为路由器将根据 URL 决定加载哪个组件。

这是新代码:

render (
    <Provider store={store}>
        <BrowserRouter>
            <App />
        </BrowserRouter>
    </Provider>,
    document.getElementById('app')
);

我处理得对吗?

最佳答案

没关系。

它们并不相互依赖。

看看它们的实现,特别是它们的渲染方法。

Redux Provider, React Router.

它们大多只是声明几个contextTypes,并渲染子项。

关于reactjs - React 应用程序中 Provider 和 Router 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49120583/

相关文章:

javascript - 优化渲染 React Components 依赖于 props

javascript - 使用路由路由器 v4 强制更新相同的路由

javascript - React Router v4 重定向不起作用

reactjs - React Router browserHistory 推送和 anchor

javascript - React Router V4 使用 Redux-persist 和 React-snapshot 保护私有(private)路由

javascript - 如何使用 Typescript 在 React 中设置间隔

javascript - React 映射嵌套数据

javascript - 如何在socket.io中发出数据?

reactjs - 如何使用 __mocks__ 目录中的 jest 来模拟 React-router-dom

reactjs - React 过渡组 - 不要为 child 设置动画