すべてのコンポーネントで、ユーザーがインターネットに接続しているかどうかをテストします。React Native with ReduxでのNetInfoミドルウェアの使用
私はNetInfo
を各コンポーネントに使用できますが、私はredux
を使用しているので、ミドルウェア(?)で簡単にできると思いました。
AppReducer
がちょうどcombineReducers(navReducer, netInfoReducer, ...)
ここで私は
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));
を使用していました。
これはうまくいくようですが、これが十分に機能するかどうか本当に心配です。それは一度だけ実行されているようだが、私はリスナーなどを削除することは決してない。
これは、すべてのコンポーネントに変数isConnected
を取り込む場合に通常行う方法ですか?
HOCでこれと同じことを達成できませんでしたか?私は、HOCを使用すると複雑さが軽減され、結果としてあなたの心を緩和すると思います。ちょっとした考え。 –