我正在使用此API来绘制地图,并且在获取数据时出错时实施了一些验证。实施此解决方案时,出现错误:
未处理的拒绝(TypeError):无法读取未定义的属性'json'
componentDidMount() {
fetch('https://api.citybik.es/v2/networks')
.then(res => { // *** implemented this
if (!res.ok) { // ***
throw new Error(res.status); // ***
} // ***
})
.catch(error => {
console.log(error);
})
.then(res => res.json()) // *** error in this line
.then(response => {
const networkData = response.networks;
this.setState({
bikeData: networkData
});
})
}
谢谢!
答案 0 :(得分:2)
为了继续promise链接,您应该为下一个.then
方法返回一个值。因此,您在第一个.then
方法中缺少此返回值。正如@jonrsharpe在评论中解释的那样,您可以将其组合。
componentDidMount() {
fetch("https://api.citybik.es/v2/networks")
.then(res => {
if (!res.ok) {
throw new Error(res.status);
}
return res.json();
})
.then(response => {
const networkData = response.networks;
this.setState({
bikeData: networkData
});
})
.catch(error => {
console.log(error);
});
}