React devToolsExtension разрушает магазин

Когда я создаю магазин, используя

const store = createStore(reducers, applyMiddleware(...middleware),  window.devToolsExtension ? window.devToolsExtension() : f => f)

Я получаю предупреждение в консоли, и магазин не работает:

Предыдущее состояние, полученное редуктором, имеет неожиданный тип "Функция". Ожидаемый аргумент: объект со следующими ключами: "posts", "sidebar"

Когда я удаляю DevTools

const store = createStore(reducers, applyMiddleware(...middleware));

это начинает работать снова.

Ты как присвоить DevTools и приложение все еще работает? Если вы хотите увидеть некоторые источники, взгляните на этот вопрос. Он настроен так же, как мое приложение.

1 ответ

Решение

Я настроил свои инструменты так:

const store = createStore(
    rootReducer,
    initialState,
    compose(
        applyMiddleware(
            thunkMiddleware,
            createLogger(),
            errorHandler,
            navigate,
            tracking
        ),
        window.devToolsExtension ? window.devToolsExtension() : f => f
    )
);

Обратите внимание на использование compose здесь вы импортируете его из redux вместе с applyMiddleware а также createStore,

IIRC ваш способ сделать это раньше работал в старой версии redux, но я не могу быть точно уверен, когда он перестал работать. Я помню, что у меня была та же проблема, что и у тебя.

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