【问题标题】:Accessing nested JSON object in React在 React 中访问嵌套的 JSON 对象
【发布时间】:2020-07-31 12:48:48
【问题描述】:

数据集:https://disease.sh/v3/covid-19/historical/usa?lastdays=all

我是 React 的新手,我正在尝试使用 COVID-19 跟踪器让我的脚湿透,所以请耐心等待...我正在尝试访问时间线 > 来自上述数据集的案例,但似乎无法使其工作.我已经尝试过let date in data.timeline.cases,但这也不起作用。也许我在寻找错误的地方 - 寻找一些指导。谢谢!

const buildChartData = (data, casesType) => {
  let chartData = [];
  let lastDataPoint;

  for (let date in data.cases) {
    if (lastDataPoint) {
      let newDataPoint = {
        x: date,
        y: data[casesType][date] - lastDataPoint,
      }
      chartData.push(newDataPoint);
    }
    lastDataPoint = data[casesType][date];
  }
  return chartData;
};

function LineGraph({ casesType = 'cases' }) {
  const [data, setData] = useState({});

  useEffect(() => {
    const fetchData = async() => {
      await fetch('https://disease.sh/v3/covid-19/historical/usa?lastdays=120')
        .then((response) => {
          return response.json()
        })
        .then(data => {
          let chartData = buildChartData(data, casesType);
          setData(chartData);
        });
    };
    
    fetchData();
  }, [casesType]);

【问题讨论】:

    标签: javascript arrays json reactjs


    【解决方案1】:

    好的,正如您所说,您尝试使用 let date in data.timeline.cases 但你也需要更改代码的另一部分。

    不是data[casesType],而是data.timeline[casesType]

      for (let date in data.timeline.cases) {
        if (lastDataPoint) {
          let newDataPoint = {
            x: date,
            y: data.timeline[casesType][date] - lastDataPoint,
          }
          chartData.push(newDataPoint);
        }
        lastDataPoint = data.timeline[casesType][date];
      }
    

    【讨论】:

      猜你喜欢
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      相关资源
      最近更新 更多