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?
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.
Commentaire le plus utile
Ajoutez
key={Math.random()}
prop à<Provider>
. Il devrait corriger cet avertissement.