React,onClick仅在第二次单击,Axios,Async / Await之后才能工作

马修

我一定会错过一些非常直接的东西。我试图发出axios GET请求,然后在async / await函数中设置setState,我也尝试过fetch().then()undefined除非我单击getData()两次或将其放在单独的onClick()事件中,否则console.log()会返回我认为状态已正确设置,但console.log()未按预期运行。有没有办法实现console.log()与axios请求相同的功能?与往常一样,我们非常感谢您的帮助。谢谢!

import React, { useState } from "react";
import axios from "axios";

const SalesGraph = () => {
  const [retrievedData, setretrievedData] = useState();

  const getData = async () => {
    try {
      const salesData = await axios.get("http://localhost:5000/sales");
      await setretrievedData(salesData);
      console.log(retrievedData);
    } catch (err) {
      console.log(err);
    }
  };
  const showState = () => {
    console.log(retrievedData);
  };
  return (
    <div>
      <button onClick={getData}>Graph</button>
      <button onClick={showState}>showState</button>
    </div>
  );
};
export default SalesGraph;
王伟

setretrievedData是异步方法,您无法在retrievedData之后立即获得更新的值setretrievedData

您需要useEffect通过添加依赖项来获取它

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React,onClick仅在第二次单击,Axios,Async / Await之后才能工作

来自分类Dev

仅在第二次Asp.NET c#之后,OnClick按钮才能工作

来自分类Dev

仅在第二次Asp.NET c#之后,OnClick按钮才能工作

来自分类Dev

Fancybox仅在第二次单击后才能工作

来自分类Dev

仅在第二次单击ListPreference之后才刷新EditTextPreference值

来自分类Dev

jQuery 仅在第二次单击后提交工作

来自分类Dev

Android ListView Onclick意图数据延迟(第二次单击工作)

来自分类Dev

Android ListView Onclick意图数据延迟(第二次单击工作)

来自分类Dev

$ anchorScroll和$ location仅在第二次尝试后才能工作

来自分类Dev

dismissViewControllerAnimated仅在第二次点击TableView行后才能工作

来自分类Dev

$ anchorScroll和$ location仅在第二次尝试后才能工作

来自分类Dev

苹果浏览器表单验证仅在第二次单击按钮时有效,但在IE 1次单击本身中可以正常工作

来自分类Dev

jQuery单击事件在Ajax之后的第二次单击上传播

来自分类Dev

仅在第二次调用startUpdatingLocation之后获取当前位置

来自分类Dev

pyplot图仅在第二次调用ginput()之后更新

来自分类Dev

登录表单需要第二次单击才能提交

来自分类Dev

为什么第二次单击按钮无法正常工作?

来自分类Dev

Android-AutoCompleteTextView onClickListener可以在第二次单击后工作

来自分类Dev

在第二次提交到 GitHub 之后

来自分类Dev

Android-SharedPreference仅在第二次之后更改MainActivity可见性

来自分类Dev

moveCamera和animateCamera第二次不工作

来自分类Dev

Java线程第二次不工作

来自分类Dev

iOS-NSURLSession第二次不工作

来自分类Dev

批量输入第二次停止工作

来自分类Dev

第二次工作时锁定文件

来自分类Dev

jQuery验证器第二次不工作

来自分类Dev

TranslateTransition第二次将无法正常工作

来自分类Dev

按钮在第二次点击Android上工作

来自分类Dev

Ajax第二次不工作

Related 相关文章

  1. 1

    React,onClick仅在第二次单击,Axios,Async / Await之后才能工作

  2. 2

    仅在第二次Asp.NET c#之后,OnClick按钮才能工作

  3. 3

    仅在第二次Asp.NET c#之后,OnClick按钮才能工作

  4. 4

    Fancybox仅在第二次单击后才能工作

  5. 5

    仅在第二次单击ListPreference之后才刷新EditTextPreference值

  6. 6

    jQuery 仅在第二次单击后提交工作

  7. 7

    Android ListView Onclick意图数据延迟(第二次单击工作)

  8. 8

    Android ListView Onclick意图数据延迟(第二次单击工作)

  9. 9

    $ anchorScroll和$ location仅在第二次尝试后才能工作

  10. 10

    dismissViewControllerAnimated仅在第二次点击TableView行后才能工作

  11. 11

    $ anchorScroll和$ location仅在第二次尝试后才能工作

  12. 12

    苹果浏览器表单验证仅在第二次单击按钮时有效,但在IE 1次单击本身中可以正常工作

  13. 13

    jQuery单击事件在Ajax之后的第二次单击上传播

  14. 14

    仅在第二次调用startUpdatingLocation之后获取当前位置

  15. 15

    pyplot图仅在第二次调用ginput()之后更新

  16. 16

    登录表单需要第二次单击才能提交

  17. 17

    为什么第二次单击按钮无法正常工作?

  18. 18

    Android-AutoCompleteTextView onClickListener可以在第二次单击后工作

  19. 19

    在第二次提交到 GitHub 之后

  20. 20

    Android-SharedPreference仅在第二次之后更改MainActivity可见性

  21. 21

    moveCamera和animateCamera第二次不工作

  22. 22

    Java线程第二次不工作

  23. 23

    iOS-NSURLSession第二次不工作

  24. 24

    批量输入第二次停止工作

  25. 25

    第二次工作时锁定文件

  26. 26

    jQuery验证器第二次不工作

  27. 27

    TranslateTransition第二次将无法正常工作

  28. 28

    按钮在第二次点击Android上工作

  29. 29

    Ajax第二次不工作

热门标签

归档