Razzle: Redux 示例具有 Provider HMR 警告

创建于 2017-10-06  ·  5评论  ·  资料来源: jaredpalmer/razzle

重现,git clone。
cd 示例/with-redux

纱线开始

然后更改任何文件,例如,common/components/Counter.js,HMR 可以工作,但浏览器会发出以下警告

<Provider> does not support changing store on the fly. It is most likely that you see this error 
because you updated to Redux 2.x and React Redux 2.x which no longer hot reload reducers 
automatically. See https://github.com/reactjs/react-redux/releases/tag/v2.0.0 for the migration instructions.

我试图用谷歌搜索这个错误,但没有找到任何食物解决方案。 有人设法克服这个吗?

最有用的评论

key={Math.random()}道具添加到<Provider> 。 它应该修复这个警告。

所有5条评论

我将以下代码添加到文件 client.js 并删除了警告。

if (module.hot) {
  module.hot.accept();
  module.hot.accept('./App', () => {
    hydrate(
      <Provider store={store}>
        <BrowserRouter>
          <App />
        </BrowserRouter>
      </Provider>,
      document.getElementById('app')
    );
  });
}

有人对此有任何看法吗?

可以提交PR吗?

key={Math.random()}道具添加到<Provider> 。 它应该修复这个警告。

@howardya的解决方案在这里更好。 使用随机密钥会使警告静音,但不会改变在每次更新时都会重新创建存储的事实,这是不支持的。 它可能会导致一些不稳定的行为,尤其是当您使用 redux 开发工具或类似工具时。

通过专门处理./App模块,它将捕获几乎所有更新,除了已经单独处理的减速器。 这使得对configureStore.jsclient/index.js本身的更改未处理。 您可以保留所有内容,这将重新运行所有内容并仍然导致警告,或者将其删除,这会触发页面重新加载。 我认为后者在这里更正确。

我会考虑为此做一个公关。

key={Math.random()}道具添加到<Provider> 。 它应该修复这个警告。

解决我的问题! 谢啦。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

sebmor picture sebmor  ·  4评论

krazyjakee picture krazyjakee  ·  3评论

MaxGoh picture MaxGoh  ·  4评论

gabimor picture gabimor  ·  3评论

charlie632 picture charlie632  ·  4评论