【发布时间】:2017-10-30 22:15:28
【问题描述】:
我希望能够在我的 react-native 应用中“持续”监控设备连接。
我已经成功地使用了 redux-thunk 和 redux。
其实我可以做到的
import { NetInfo } from 'react-native';
import {
CONNECTION_CHECKING,
CONNECTION_AVAILABLE,
CONNECTION_UNAVAILABLE,
} from './types';
export const connectionChecking = () => {
return (dispatch) => {
dispatch ({
type: CONNECTION_CHECKING
});
NetInfo.getConnectionInfo()
.then((connectionInfo) => {
console.log('Connection info: ', connectionInfo);
switch (connectionInfo.type) {
case 'cellular':
dispatch ({
type: CONNECTION_AVAILABLE,
payload: connectionInfo.type
});
break;
case 'wifi':
dispatch ({
type: CONNECTION_AVAILABLE,
payload: connectionInfo.type
});
break;
default:
dispatch ({
type: CONNECTION_UNAVAILABLE,
});
}
})
.catch((error) => console.warn(error));
};
};
但是,当连接发生变化时,我不知道如何调度新操作。
从 react-native 文档中我看到了这个:
NetInfo.addEventListener(
'connectionChange',
handleConnectivityChange
);
但是......如何在事件监听器中调度一个动作?
我试图将它添加到同一个动作文件中
NetInfo.addEventListener(
'connectionChange', (connectionInfo) => {
return (dispatch) => {
console.log('Connection info changed ', connectionInfo);
switch (connectionInfo.type) {
case 'cellular':
case 'wifi':
dispatch ({
type: CONNECTION_AVAILABLE,
payload: connectionInfo.type
});
break;
default:
dispatch ({
type: CONNECTION_UNAVAILABLE,
});
}
};
}
);
我没有得到任何结果,没有 console.log,所以我认为这是错误的方式
【问题讨论】:
标签: javascript react-native redux redux-thunk