Razzle: Reduxの例にはプロバイダーHMR警告があります

作成日 2017年10月06日  ·  5コメント  ·  ソース: jaredpalmer/razzle

再現、gitクローン。
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のソリューションはここでより良いものです。 ランダムキーを使用すると警告が表示されなくなりますが、更新のたびにストアが再作成されるという事実は変わりません。これはサポートされていないことです。 特にreduxdev-toolsなどを使用している場合は、動作が不安定になる可能性があります。

./Appモジュールを具体的に処理することにより、すでに個別に処理されているレデューサーを除いて、事実上すべての更新をキャッチします。 これにより、 configureStore.jsおよびclient/index.js自体への変更は未処理のままになります。 キャッチオールをそのままにしておくと、すべてが再実行されても警告が表示されるか、削除してページのリロードがトリガーされます。 ここでは後者の方が正しいと思います。

このためのPRを作成する方法を見ていきます。

key={Math.random()}プロップを<Provider>追加します。 この警告を修正する必要があります。

私の問題を解決してください! ありがとう。

このページは役に立ちましたか?
0 / 5 - 0 評価