reactjs - 在 promise 中作为参数传递时数组未定义
问题描述
尝试读取数组时遇到问题我正在通过 .then(),当我这样做时,我只是收到一个错误,即数组未定义,如果我尝试在第一个 .then() 中记录它,它会正确显示我在想这种功能可能最适合此时的异步/等待功能.....但这与仅添加 .then() 不同,但我不确定是否有我可以在不使用逻辑的情况下解决这个问题:P
希望有一些见解,欢迎建设性的批评:)
componentDidMount(){
fetch(`https://api.nasa.gov/DONKI/CMEAnalysis?startDate=${this.state.time[0]}&endDate=${this.state.time[1]}&mostAccurateOnly=true&speed=500&halfAngle=30&catalog=ALL&api_key=${process.env.REACT_APP_APIKEY}`)
.then(response => response.json())
.then((data) => {
this.setState({coronaData:data})
const dataRadar = {
labels: ["speed", "halfAngle", "longitude", "latitude"],
datasets: [
{
label: data[0].associatedCMEID,
backgroundColor: "rgba(194, 116, 161, 0.5)",
borderColor: "rgb(194, 116, 161)",
data: [65, 59, 90, 81]
},
{
label: data[1].associatedCMEID,
backgroundColor: "rgba(71, 225, 167, 0.5)",
borderColor: "rgb(71, 225, 167)",
data: [65, 59, 90, 81]
}
]
}
})
.then((dataRadar)=>{
console.log(dataRadar) //getting undefined when logging here
this.setState({dataRadar:dataRadar})
})
}
解决方案
您需要在最后添加return dataRadar
第二个then
,以便将其转发到下一个then
。
推荐阅读
- java - 为什么这段代码的输出是 234 而不是 23?
- java - 可以以与二叉搜索树类似的方式使用 TreeSet 吗?
- javascript - 基于多个过滤器的过滤器阵列
- arrays - 使用函数返回数组
- go - 如何探索 go 包中的函数
- php - 使 try 函数在异常后停止/更好的异常管理方式
- python - 在 VS Code (Linux) 中强制执行 PEP-8 linting 和格式化
- json - VueJS修改数组
- javascript - 使用 ajax、js 和 php 上传多张照片
- python - 如何在 Python3 中使用 argparse 从两组命令行参数中解析出一组?