Razzle: Los ejemplos de Redux tienen la advertencia HMR del proveedor

Creado en 6 oct. 2017  ·  5Comentarios  ·  Fuente: jaredpalmer/razzle

Reproducir, clon git.
cd ejemplos / con-redux
hilo
comienzo del hilo

luego cambie cualquier archivo, por ejemplo, common / components / Counter.js, HMR funcionará, pero el navegador emitirá la siguiente advertencia

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

He intentado buscar en Google este error, pero no encuentro ninguna solución alimentaria. ¿Alguien logra superar esto?

Comentario más útil

Agregue key={Math.random()} prop a <Provider> . Debería solucionar esta advertencia.

Todos 5 comentarios

Agregué el siguiente código al archivo client.js y elimina la advertencia.

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

¿Alguien tiene alguna opinión de esto?

¿Puedes enviar un PR?

Agregue key={Math.random()} prop a <Provider> . Debería solucionar esta advertencia.

La solución de @howardya es la mejor aquí. El uso de una clave aleatoria silencia la advertencia, pero no cambia el hecho de que la tienda se está recreando en cada actualización, que es lo que no es compatible. Puede conducir a un comportamiento inestable, especialmente si está utilizando redux dev-tools o similar.

Al manejar específicamente el módulo ./App , capturará prácticamente todas las actualizaciones excepto los reductores, que ya se manejan por separado. Eso deja los cambios en configureStore.js y client/index.js como no manejados. Puede dejar el catch-all adentro, que volvería a ejecutar todo y aún causar la advertencia, o eliminarlo, lo que desencadena una recarga de la página. Creo que esto último sería más correcto aquí.

Echaré un vistazo a hacer un PR para esto.

Agregue key={Math.random()} prop a <Provider> . Debería solucionar esta advertencia.

resuelve mi problema! gracias hombre.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

dizzyn picture dizzyn  ·  3Comentarios

sebmor picture sebmor  ·  4Comentarios

gabimor picture gabimor  ·  3Comentarios

Jayphen picture Jayphen  ·  4Comentarios

alexjoyner picture alexjoyner  ·  3Comentarios