Redux Devtools
import { compose, createStore } from 'redux';
const composeEnhancers =
typeof window === 'object' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({})
: compose;
Мы проверяем, что расширение Redux DevTools есть, а глобальный window вообще существует — это важно, например, при SSR. Если всё хорошо, мы используем расширение. В противном случае — вызовем функцию compose
. По своей задаче обе функции примерно равны, но window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({})
позволяет использовать расширение. Функция compose
просто последовательно применяет расширители хранилища, если они есть. Опять же, про расширители мы поговорим в следующем уроке.
После вызова расширения нужно применить его к хранилищу. Для этого используется второй аргумент createStore
:
import { compose, createStore, applyMiddleware } from 'redux';
const enhancer = composeEnhancers();
const store = createStore(rootReducer, enhancer);
#react