Я создаю промежуточное ПО Redux для использования единого и глобального экземпляра Socket.IO в приложении React Native.Пока что все работает, за исключением одного: при получении данных через события сокета я не могу сохранить их, потому что для этого мне нужно было бы выполнить действие, чего я не могу сделать, потому что у меня нет доступа кstore.
В соответствии с этим примером https://gist.github.com/markerikson/3df1cf5abbac57820a20059287b4be58, который цитировался в Redux doc, и кучей других онлайн-примеров, я смогу получить доступ к магазину в промежуточном программном обеспечении, но магазинпустой объект.
Это промежуточное ПО:
const socketMiddleware = (store) => next => action => {
// ...
return next(action);
}
export default socketMiddleware;
И это создание магазина:
export default function configureStore() {
const middlewares = [
thunkMiddleware.withExtraArgument({ api }),
errorMiddleware,
socketMiddleware,
promiseMiddleware(),
isDev() && logger,
].filter(Boolean);
const store = createStore(
persistedReducer,
composeWithDevTools(applyMiddleware(...middlewares)),
);
const persistor = persistStore(store);
return { store, persistor };
}
Любая помощь приветствуется!
РЕДАКТИРОВАТЬ: обновленный выпуск