React Native 可能未处理的 Promise 拒绝
2018-08-25
8732
我尝试使用 React Native 的 fetch 函数从 API 获取值。然后将从 JSON 中检索到的值标记为数百万、数十亿...等。
JSON 文件
{
"value": 92060,
"new": 1
}
为了执行我想要的操作,我使用了以下代码。
async componentDidMount() {
let data = await fetch('https://demo614535421.mockable.io/getData')
.then((response) => response.json())
.then((responseJson) => {
this.setState({
grossRev : this.getCodedValues(responseJson.grossRevenue)
})
})
.catch((error) => {
console.error(error);
});
this.setState({ wowData: true });
return data;
>
和
getCodedValues()
函数,
getCodedValues(value)
{
console.log(Math.abs(Number(value)));
}
在我检查数百万和数十亿之前,iOS 模拟器开始显示一条错误,
Undefined is not an Object (evaluating '_reactNative.Math.abs')
我在这里使用 async 和 await 来在捕获数据时保存函数。但仍然似乎在
getCodedValues
函数中
value
参数是
undefined
?
问题
- 我该如何解决这个问题并进行算术计算?
1个回答
这个怎么样?这只使用 async/await,不处理 then/catch,因为当您使用 await 时,它会等待 fetch 返回响应。
async componentDidMount() {
try {
let response = await fetch('https://demo614535421.mockable.io/getData');
let responseJson = response.json();
this.setState({
grossRev: this.getCodedValues(responseJson.grossRevenue)
})
}catch(err){
console.log(err);
}
}
Sujil Maharjan
2018-08-25