Redux Dev Tools Chrome Extension Immutable.js вызывает ошибку

В настоящее время моя установка приставки (которая использует Immutable.js для своего состояния) работает полностью так, как нужно. Тем не менее, при расширении приставки redux dev tools выдает следующую ошибку:

Произошла ошибка в редукторе TypeError: n.withMutations не является функцией

Для контекста, я использую redux-immutable для функции комбайнового редуктора, чтобы, ну, в общем, объединить мой реактив-маршрутизатор-редуктор:

import { fromJS } from 'immutable';
import { LOCATION_CHANGE } from 'react-router-redux';

const initialState = fromJS({
  locationBeforeTransitions: null,
});

export default (state = initialState, action) => {
  if (action.type === LOCATION_CHANGE) {
    return state.merge({
      locationBeforeTransitions: action.payload,
    });
  }
  return state;
};

и мои бизнес-логики редукторы.

ОБНОВЛЕНИЕ: Создание производственного пакета с веб-пакетом, тестирование приложения в рабочем режиме (в контейнере Docker) и повторное тестирование приложения в режиме разработки (на локальной машине без докера), похоже, решили проблему? Странный...

1 ответ

Если вы хотите использовать react-router-reduxнет необходимости реализовывать собственный редуктор, просто импортируйте routerReducer в качестве ключевой маршрутизации (важно) из react-router-redux как показано ниже и в сочетании с другими редукторами,

import { syncHistoryWithStore, routerReducer } from 'react-router-redux'
// Add the reducer to your store on the `routing` key
const store = createStore(
  combineReducers({
    ...reducers,
    routing: routerReducer
  })
)

//To Sync navigation events with the store
const history = syncHistoryWithStore(browserHistory, store)

ReactDOM.render(
  <Provider store={store}>
    { /* Tell the Router to use our enhanced history */ }
    <Router history={history}>
      <Route path="/" component={App}>
        <Route path="foo" component={Foo}/>
        <Route path="bar" component={Bar}/>
      </Route>
    </Router>
  </Provider>,
  document.getElementById('mount')
)

Надеюсь, это то, что вы пытаетесь реализовать

Другие вопросы по тегам