2015-12-12 11 views
9

Mam ciężki czas, aby moje reduktory mogły być wymienialne podczas pracy.Stwórz reduktory Redux i inne komponenty, które mogą być ładowane na gorąco

Używam Webpack i react-transform-hmr. Dzięki temu cały CSS i komponenty są bardzo obciążone podczas zapisywania, ale kiedy próbuję pracować nad innym typem - w szczególności reduktorami - powiedziałbym, żeby wykonać pełne odświeżenie.

Wyjaśniłem, że to dlatego, że muszę ponownie załadować reduktory i zaakceptować zdarzenie. Które robię z tego kodu w moim store.js:

if(module.hot) { 
    module.hot.accept('./reducers/',() => { 
    const nextRootReducer = require('./reducers/index'); 
    store.replaceReducer(nextRootReducer); 
    }); 
} 

reducers/index eksportuje reduktor korzeniowy.

Jednak teraz gdy uruchamiam to ciągle mi mówi [HMR] Cannot check for update (Full reload needed a także błędy mówiąc [HMR] TypeError: currentReducer is not a function

Więc - Potrzebuję pomocy uzyskiwanie to do pracy. Kod jest dostępny na https://github.com/wesbos/Simple-Redux i można odtworzyć go, wykonując:

  1. npm install
  2. npm start
  3. Otwarte localhost: 3000 w swojej przeglądarce
  4. edytować reduktor - otwarte posts.js i zmienić numer na linii 6 do czegokolwiek innego

Odpowiedz

18

Nie przyjrzałem się uważnie, ale domyślam się, że jest to this issue.
Babel 6 nie próbuje już eksportować domyślnie ES6 wyniku module.exports.

Więc zamiast

const nextRootReducer = require('./reducers/index'); 

prawdopodobnie chcesz

const nextRootReducer = require('./reducers/index').default; 

który odpowiada Babel 6 wyjście dla eksportu domyślnych ES6.

+1

To było to - dziękuję! – wesbos