Javascript use状态在useffect中不起作用并显示此错误

Javascript use状态在useffect中不起作用并显示此错误,javascript,reactjs,Javascript,Reactjs,在use effect函数中,调用API后,我们使用useState函数设置值,但当我们打印console.log时,它会打印“null”。这意味着未设置状态数据的值。当我呈现状态数据时,它会显示一个错误,如下所示 import React, { useEffect, useState } from 'react'; import Navbar from '../Home/Header/Header'; import 'bootstrap/dist/css/bootstrap.min.css';

在use effect函数中,调用API后,我们使用useState函数设置值,但当我们打印console.log时,它会打印“null”。这意味着未设置状态数据的值。当我呈现状态数据时,它会显示一个错误,如下所示

import React, { useEffect, useState } from 'react';
import Navbar from '../Home/Header/Header';
import 'bootstrap/dist/css/bootstrap.min.css';
import Header from '../Home/Header/Header';
import { Button, Card, Col, Container, Row, Spinner, Table } from 'react-bootstrap';
import Chart from "react-google-charts";
import Trackers from './Trackers';
import Charts from './Charts';
import Tables from './Tables';
import Carousels from './Carousels';
import Axios from 'axios';
import './Covid_Update.css';


function Covid_Update() {

  const [state_data,set_state_data]=React.useState(null);
  useEffect(() => {

    Axios.get("https://api.covid19india.org/data.json").then(function (val) {
    set_state_data(val.data["statewise"]);
    console.log(state_data);   
   
  })
  },[])

  return (
    <>
      { 
      state_data==null?<Container id="load"><center><Spinner animation="grow" variant="dark" size="100" /></center></Container>:<div>
      {state_data}
      </div>
            }

    </>
  );
}
export default Covid_Update;

请帮帮我

  • set\u state\u data
    是一种异步方法,您不能在
    set\u state\u data
    之后立即获取更新的
    state\u data
    。 您应该通过添加依赖项在other useEffect中获得更新的值
  • 根据错误结果,
    state\u data
    是对象,您需要将其转换为要在DOM中显示的字符串
state_data==null?:
{JSON.stringify(state_data)}

这是一个经常重复的问题。进一步的回答是不必要的,只是指向前面的答案(可能有一个有用的注释)。错误:对象作为React子对象无效(找到:具有键{active、confirmed、deaths、deltaconfirmed、deltadeaths、deltarecovered、LastUpdateTime、migratedother、recovered、state、statecode、statenotes}的对象)。如果要呈现子对象集合,请改用数组。在div(在Covid_Update.js:35)在Covid_Update(由Context.Consumer创建)在Route(在App.js:17)在Switch(在App.js:14)在BrowserRouter(由BrowserRouter创建)在BrowserRouter(在App.js:12)在main(在App.js:11)在App(在src/index.js:9)中在Covid_Update(由Context.Consumer.js.Consumer.js:17)在Switch)在!!它成功了,我真的很感谢你帮我记录旧的状态(它不能改变——它是一个
const
——即使它不是
const
,也不会改变)。新状态由状态设置器设置,然后再次调用组件函数以重新渲染,并以新的
state\u data
常量获取新状态。
Error: Objects are not valid as a React child (found: object with keys {}). If you meant to render a collection of children, use an array instead.
    in Covid_Update (created by Context.Consumer)
    in Route (at App.js:17)
    in Switch (at App.js:14)
    in Router (created by BrowserRouter)
    in BrowserRouter (at App.js:12)
    in main (at App.js:11)
    in App (at src/index.js:9)
    in StrictMode (at src/index.js:8)
useEffect(() => {
  console.log(state_data);
}, [ state_data ]);
      state_data==null?<Container id="load"><center><Spinner animation="grow" variant="dark" size="100" /></center></Container>:<div>
      {JSON.stringify(state_data)}
      </div>