Redux getState не работает, но useSelector работает - PullRequest
0 голосов
/ 29 января 2020

решено

Мы нашли буквально две минуты после публикации этого вопроса ... Наше решение было таким:

let state:any;
store.subscribe(() => {
    state = store.getState();
});

Я создаю приложение React с Redux и Redux-Persist. У меня проблема с доступом к состоянию Redux вне компонента React. Если я подписываюсь на хранилище и консоль журнала состояния, оно показывает правильное состояние с данными внутри него, но когда я консоль журнала состояние вне (const state = store.getState(); ), функция стрелки подписки (store.subscribe(() => console.log(store.getState()))) данные внутри хранилища пустые , И когда я использую хук useSelector внутри компонента React, он работает нормально. Это действительно странная ошибка, так как она появилась через две недели после того, как я написал код в магазине за пределами компонента React. У кого-нибудь была похожая ошибка?

Это мой конфиг Redux.

// Redux.
import { createStore, applyMiddleware, compose } from "redux";

// Redux-thunk.
import thunk from "redux-thunk";

// Reducers.
import reducers from "../reducers";

// Storage.
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage' // defaults to localStorage for web

const persistConfig = {
    key: 'root',
    storage,
}
const persistedReducer = persistReducer(persistConfig, reducers);
const composeEnhancers =
    (window["__REDUX_DEVTOOLS_EXTENSION_COMPOSE__"] as typeof compose) ||
    compose;
const middleWare = applyMiddleware(thunk);
const store = createStore(persistedReducer,  composeEnhancers(middleWare));
const persistor = persistStore(store)

export {store, persistor};

...