решено
Мы нашли буквально две минуты после публикации этого вопроса ... Наше решение было таким:
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};