reactjs - 如何返回此状态
问题描述
我有一个函数 InternetStatus() 如下所示。我通过 console.log 在 render() 中调用了这个函数,但它仍然显示未定义?我如何解决它?谢谢!
function InternetStatus() {
NetInfo.fetch().then(state => {
console.log("Connection type", state.type);
console.log("Is connected?", state.isConnected);
return (state.isConnected)
});
}
render() {
console.log(InternetStatus())
return (
<View>
<Text>
hello
</Text>
</View>
);
}
}
解决方案
NetInfo.fetch()
是一个异步函数,这意味着该InternetStatus
函数将恢复执行,并且在上面的代码中它没有返回任何内容,因此您得到了未定义。一种处理方法是链接承诺。
function InternetStatus() {
return NetInfo.fetch().then(state => {
console.log("Connection type", state.type);
console.log("Is connected?", state.isConnected);
return (state.isConnected)
});
}
render() {
InternetStatus().then(result => {
console.log(result)
})
return (
<View>
<Text>
hello
</Text>
</View>
);
}
}
如果您打算在 UI 上使用 api 响应,那么您需要强制更改状态。
推荐阅读
- c# - 确保在派生类中定义静态属性
- javascript - PWA:服务工作者已更新但未缓存文件
- java - 为什么我无法从这些代码中打印任何单词?
- javascript - Web 令牌通知上的 Firebase 错误
- react-native - 检查 AsyncStorage 中的现有密钥
- node.js - 组件之间的Angular 4 ngModel
- python - 在python中将列表中的数字相乘
- java - 如何在firebase中获取所有孩子的数据并将其显示到我的android应用程序中?
- datatable - 合并的数据表不要复制到新表单
- ios - 从一个位置移动到另一个位置后 UIButton 框架发生了变化