首页 > 解决方案 > 为什么我的应用程序给出错误:未定义 DailyData

问题描述

Api->index.js

import axios from 'axios';

const url = 'https://api.covid19india.org/data.json';

export const fetchDailyData = async () => {
    try {
      const response  = await axios.get(url);
      return response.data.statewise;
     } catch (error) {
      return error;
    }
  };

Body.js


class Body extends Component {
  state = {
      dailyData: []
  };

    componentDidMount()
    {
        const fetchMyAPI = async () => {
        const initialDailyData = await fetchDailyData();
        // console.log(initialDailyData);  // giving correct data that is an Array 
        this.setState({
            dailyData: initialDailyData,
        })

        console.log(dailyData) // gives error : dailyData is not defined
        // console.log(this.dailyData) // gives undefined 
        };
        fetchMyAPI();
    }

我的 API 运行良好,它返回了我想要的东西,但是当我尝试设置dailyData 变量时,当我尝试访问它时,它给出未定义或给出错误(当我在没有这个的情况下使用它时)。 .)

标签: javascriptreactjsapi

解决方案


dailyData是状态对象的一个​​属性。所以你应该从州打电话

console.log(this.state.dailyData)

你有空数组

因为 reactsetState是异步的,所以你应该在状态更新后调用。它在setState回调时可用

this.setState({
  dailyData: initialDailyData,
}, () => {
  console.log(this.state.dailyData) // you are received updated value
})

推荐阅读