嗨,我想保存我的回复.数据到我的数组状态的react ,但它从来没有存储正确的数组,但当我做一个临时数组,它的工作.

任何帮助都将不胜感激,谢谢!

 const [allstudentlist, setAllStudentlist] = useState([]);

await Axios.post(currentUrl, params).then((res) => {
  // if res.data[0][]
  // if res data is there then ;
  if (res.data["error"]) {
    alert(res.data["error"]);
  } else {
    // alert("Register Successful");
    // console.log(res.data[0]);
    console.log(res.data);
    // works
    let temp = res.data;
    setAllStudentlist(...temp);
    // works
    console.log(temp);
    // returns an empty array
    console.log(allstudentlist);
  }
});

日期回复

reponse data

我也try 过用一个假的api进行测试,但在react上设置数组似乎有问题

我试图用codeSandbox和一个假的API进行测试,但它不起作用

import "./styles.css";
import React, { Component, useState, useEffect } from "react";

import Axios from "axios";
export default function App() {
  const [array2, setArray] = useState([]);

  function handleClick() {
    Axios.get("https://finalspaceapi.com/api/v0/character/?limit=2").then(
      function (response) {
        console.log(response.data);
        setArray(response.data);
        console.log(array2);
      }
    );
  }
  return (
    <div className="App">
      <h1>Hello CodeSandbox</h1>
      <h2>Start editing to see some magic happen!</h2>
      <button onClick={handleClick}></button>
    </div>
  );
}

推荐答案

由于它是一个异步函数,因此无法在设置状态之后立即看到更新的值.设置值的方式很好.移动控制台日志(log);

handleClick人之外

  function handleClick() {
    Axios.get("https://finalspaceapi.com/api/v0/character/?limit=2").then(
      function (response) {
        console.log(response.data);
        setArray(response.data);
      }
    );
  }

  console.log(array2);

把它放在一个有依赖关系的useEffect以内

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

Reactjs相关问答推荐

自动化幻灯片放映以防止React中重复过多的正确方法是什么

react 派生状态未正确更新

为什么安装FLOBIT后,所有的输入FIELD现在都有一个蓝色的轮廓?

在数组对象内的数组上进行映射

折叠并重新打开react 手风琴将重置内部状态

使用Ionic 7和React 18,如何访问历史对象以在页面之间导航?

为什么React UseEffect挂钩在页面重新加载时运行

从 MongoDB createAt 字段中分割精确时间

如何在 ChartJS 中创建此图表?在 NEXTjs 和 TSX 中

React router v5 仅在生产中不适用于嵌套路由

try 从 React JS 构建此教程游戏但无法继续前进

React - 将一个充满空值的无限大小的数组存储在 ref 中是否可以,或者我应该重置数组吗?

图像路径很奇怪,部署 Next.js 应用程序后我看不到任何图像

我可以更改 styled() 中的响应吗? (MUI v5)

如何使用 React 更改 Material UI 中 ButtonGroup 的 colored颜色 ?

将 ref 转发到所有页面(路由组件)只是为了将其应用于
并具有跳过导航链接(按钮).有没有更好的办法?

谁能根据经验提供有关 useEffect 挂钩的更多信息

当状态改变时如何执行一些动作,但只针对第一次更新?

在react 钩子中将数组添加到数组状态给出一个数字

为什么我从另一个组件收到错误?