Razzle: Les exemples Redux ont l'avertissement du fournisseur HMR

Créé le 6 oct. 2017  ·  5Commentaires  ·  Source: jaredpalmer/razzle

Reproduisez, git clone.
exemples de cd/avec-redux
fil
début de fil

puis modifiez n'importe quel fichier, par exemple, common/components/Counter.js, HMR fonctionnera, mais le navigateur émettra l'avertissement suivant

<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.

J'ai essayé de googler autour de cette erreur, mais je ne trouve aucune solution alimentaire à cela. Quelqu'un parvient à surmonter cela?

Commentaire le plus utile

Ajoutez key={Math.random()} prop à <Provider> . Il devrait corriger cet avertissement.

Tous les 5 commentaires

J'ai ajouté le code suivant au fichier client.js et il supprime l'avertissement.

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

Quelqu'un a-t-il un avis à ce sujet ?

Pouvez-vous soumettre un PR?

Ajoutez key={Math.random()} prop à <Provider> . Il devrait corriger cet avertissement.

La solution de @howardya est la meilleure ici. L'utilisation d'une clé aléatoire fait taire l'avertissement mais ne change pas le fait que le magasin est recréé à chaque mise à jour, ce qui n'est pas pris en charge. Cela peut conduire à un comportement bancal, surtout si vous utilisez des outils de développement redux ou similaires.

En gérant spécifiquement le module ./App , cela attrapera pratiquement toutes les mises à jour, à l'exception des réducteurs, qui sont déjà gérés séparément. Cela laisse les modifications apportées à configureStore.js et client/index.js lui-même comme non gérées. Vous pouvez soit laisser le fourre-tout, ce qui réexécuterait tout et provoquerait toujours l'avertissement, soit le supprimer, ce qui déclencherait un rechargement de la page. Je pense que ce dernier serait plus correct ici.

Je vais jeter un oeil à faire un PR pour cela.

Ajoutez key={Math.random()} prop à <Provider> . Il devrait corriger cet avertissement.

résoudre mon problème ! Merci mec.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

GouthamKD picture GouthamKD  ·  3Commentaires

krazyjakee picture krazyjakee  ·  3Commentaires

sebmor picture sebmor  ·  4Commentaires

knipferrc picture knipferrc  ·  5Commentaires

dizzyn picture dizzyn  ·  3Commentaires