我正在尝试使用React Native的提取功能从API获取值。然后将从JSON检索的值标记为Millions,Billions ...等。
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并在这里等待以保存函数。但是在getCodedValues
函数中,value
中的参数似乎仍然是undefined
吗?
问题
答案 0 :(得分: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);
}
}