【发布时间】:2019-02-27 15:47:08
【问题描述】:
我正在创建一个 Redux 中间件,以在 React Native 应用程序中使用 Socket.IO 的单个全局实例。到目前为止一切正常,除了一件事:当通过套接字事件接收数据时,我无法存储它,因为我需要调度一个动作来这样做,我不能这样做,因为我无权访问商店。
根据 Redux doc 中引用的这个例子https://gist.github.com/markerikson/3df1cf5abbac57820a20059287b4be58 和一堆其他在线示例,我应该可以访问中间件中的 store,但 store 是一个空对象。
这是中间件:
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 };
}
感谢任何帮助!
编辑:更新问题
【问题讨论】:
标签: react-native redux socket.io