首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在初始化响应错误之前访问

无法在初始化响应错误之前访问
EN

Stack Overflow用户
提问于 2022-11-08 13:35:29
回答 1查看 28关注 0票数 0

当我想运行代码时,在初始化错误之前,我已经无法访问“chartjs”。我从API中获取数据,并希望使用此API创建条形图。但是,当我获取这些数据并想要创建chart.js所需的结构时,我无法访问错误。

代码语言:javascript
运行
复制
import "./App.css";
import BarChart from "./components/BarChart";
import { useEffect, useState } from "react";
import axios from "axios";

function App() {
  const [chartjs, setChartjs] = useState({
    labels: chartjs.data.map((item) => item.Year),
    datasets: [
      {
        labels: "Population",
        data: chartjs.data.map((item) => item.Population),
      },
    ],
  });

  const url =
    "https://datausa.io/api/data?drilldowns=Nation&measures=Population";

  useEffect(() => {
    axios.get(url).then((response) => {
      setChartjs(response.data);
    });
  }, [url]);

  if (chartjs) {
    chartjs.data.map((item) => {
      console.log(item.Year);
    });
  }

  // const [userData, setUserData] = useState({
  //   labels: chartjs.data.map((item) => item.Year),
  //   datasets: [
  //     {
  //       labels: "Population",
  //       data: chartjs.data.map((item) => item.Population),
  //     },
  //   ],
  // });

  return (
    <div>
      <BarChart chartData={chartjs} />
    </div>
  );
}

export default App;

我是BarChart.js

代码语言:javascript
运行
复制
import React from "react";
import { Bar } from "react-chartjs-2";
import {Chart as ChartJS} from "chart.js/auto"

const BarChart = ({chartData}) => {
    
  return <Bar data={chartData}/>;
};

export default BarChart;
EN

回答 1

Stack Overflow用户

发布于 2022-11-08 14:05:46

  • 您可以将初始状态保持为未定义(默认情况下不提供)

  • 在从API response (我不确定响应结构,但您可以根据需要)将其设置为

之前,先创建您想要的结构

  • 添加了一个加载状态,直到响应可用(为了演示目的)。

函数App() { chartjs,setChartjs = useState();const = "https://datausa.io/api/data?drilldowns=Nation&measures=Population";useEffect(() ) => {axios.get(Url).then(响应) => { const data ={标签:response.data.data.map(项目) => item.Year),数据集:{标签:“总体”,数据:response.data.data.map((项目) => item.Population),},};setChartjs(数据);};},url);if(!chartjs)返回“加载.”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74361641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档