You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中使用加载状态仍无法解决数据undefined问题的求助

React中使用加载状态仍无法解决数据undefined问题的求助

我知道setState调用中使用的数据要等到下一次渲染才会更新,也查了很多资料想解决这个问题。我找到的最佳方案是使用加载状态,在数据获取完成前显示加载界面。但不知道为什么这个方法对我不管用,我很好奇是不是哪里漏了什么。

当把paramData传给LineGraph组件时,它始终渲染不出来,而且我在useEffect里打印它的时候,第一次是undefined,但之后再打印就有数据了。另外如果我去掉LineGraph里的data?.entries中的问号,就会报undefined错误。

下面是负责数据获取和加载逻辑的组件(我原本还加了loading状态的setState,在useEffect开始时设为true,结束时设为false,但也没用):

import { useState, useEffect } from "react";
import LineGraph from "../components/Graphs/LineGraph";
import TopNav from "../components/General/TopNav";
import Card from "../layout/Card";
import { fetchParamData } from "../utils/dataHandler";

const Parameters = () => {

  const [paramData, setParamData] = useState([]);

  useEffect(() => {
    const fetchParameters = async () => {
      const data = await fetchParamData();
      setParamData(data)
    }

    fetchParameters();
  },[]);

  if(!paramData || paramData === undefined) {
    return (
      <section className="loading">
        <p>
          Loading
        </p>
      </section>
    )
  }

  return (
    <>
      <TopNav />
      <Card>
        <LineGraph data={paramData[0]} />
      </Card>
    </>
  );
}

export default Parameters;

以下是LineGraph组件(以防需要参考):

import { useEffect, useRef } from "react";
import { LineChart, Line, CartesianGrid, XAxis, YAxis, Tooltip } from "recharts";
import colorVars from "../../modules/sassVars.module.scss";


const LineGraph = ({ data }) => {

  useEffect(() => {
    console.log(data);
  },[data]);

  return (
    <div>
      <LineChart width={400} height={200} data={data?.entries} margin={{ top: 5, right: 20, bottom: 5, left: 0 }}>
        <Line type="monotone" dataKey="parameterLevel" stroke={colorVars.primary20} strokeWidth="5" />
        <CartesianGrid stroke="#ccc" />
        <XAxis />
        <YAxis />
      </LineChart>
    </div>
  );
}

export default LineGraph;

我感觉自己肯定漏了什么,但不确定到底是什么。我搜了半天也没找到合适的答案,希望有人能帮忙,谢谢!


备注:内容来源于stack exchange,提问作者Tapialj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 10:04:33