首页 > 解决方案 > 在 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})
      })
    }

标签: reactjsasync-awaitreact-hooks

解决方案


您需要在最后添加return dataRadar第二个then,以便将其转发到下一个then


推荐阅读