【发布时间】:2020-07-11 16:19:52
【问题描述】:
我有一个 React 组件,其中包括 Internet 连接的可用性标志。 UI 元素必须根据状态实时动态改变。此外,随着标志的变化,函数的行为也会有所不同。
我当前的实现使用 Axios 每隔一秒使用间隔轮询远程 API,并相应地更新状态。我正在寻找一种更精细、更有效的方法来完成这项任务,以最小的计算成本消除 1 秒的状态错误。考虑在线当且仅当设备具有外部互联网连接
当前实现:
class Container extends Component {
constructor(props) {
super(props)
this.state = {
isOnline: false
};
this.webAPI = new WebAPI(); //Axios wrapper
}
componentDidMount() {
setInterval(() => {
this.webAPI.poll(success => this.setState({ isOnline: success });
}, 1000);
}
render() {
return <ChildComponent isOnline={this.state.isOnline} />;
}
}
已编辑:
正在寻找能够检测外部 Internet 连接的解决方案。该设备可以连接到没有外部连接的 LAN。所以,它被认为是离线的。 当且仅当设备可以访问外部互联网资源时才考虑在线。
【问题讨论】:
-
您需要知道您是离线还是在线?或什么互联网连接?
-
是的。基本上在线或离线。
-
你能改变 API 让它暴露一个 websocket 连接吗?
标签: javascript reactjs axios