我希望在所有组件中测试用户是否连接到互联网。
我可以在每个组件中使用"NetInfo",但由于我正在使用"redux",所以我认为可以通过中间件更轻松地完成这个任务。
我已经使用过。
我可以在每个组件中使用"NetInfo",但由于我正在使用"redux",所以我认为可以通过中间件更轻松地完成这个任务。
我已经使用过。
import { createStore, applyMiddleware } from 'redux';
const netInfo = store => next => action => {
const listener = (isConnected) => {
store.dispatch({
type: types.NET_INFO_CHANGED,
isConnected,
});
};
NetInfo.isConnected.addEventListener('change', listener);
NetInfo.isConnected.fetch().then(listener);
return next(action);
};
const store = createStore(AppReducer, applyMiddleware(netInfo));
这里的AppReducer
只是combineReducers(navReducer, netInfoReducer, ...)
的简写。
看起来似乎可以工作,但我真的很担心它的性能是否足够好。它似乎只运行一次,但我从未删除监听器或任何其他东西。
如果您想为所有组件填充isConnected
变量,这是您通常会采取的方式吗?