第一次单击按钮时,为什么汤姆被渲染?

库纳尔·提瓦里
import React, { useState, useEffect } from "react";
import axios from "axios";
const DetailsPage = props => {
  const [user, setData] = useState("Harry");
  const [isShow, setShow] = useState();
  useEffect(() => {
    console.log("Mounted");
    setShow(true);
    return () => {
      console.log("unmount");
    };
  }, [user]);

  return (
    <div>
      {" "}
      <button
        onClick={() => {
          setData("Tom");
          console.log(user);
          setShow(false);
        }}
      >
        {isShow ? <>{user}</> : <>""</>}
      </button>
      {user}
    </div>
  );
};
export default DetailsPage;

当我单击按钮时(在屏幕上渲染组件之后),它会将Tom显示为按钮值。有人可以向我解释此代码的工作原理吗(为什么汤姆出现,为什么不出现“”(空字符串))

王伟

这两个setDatasetShow是异步方法。当您调用时setData("Tom")user将被更新并useEffect在您user作为依赖项传递时被触发但是,与setShowonClick内部相比,这种useEffect触发将稍有延迟,因为这setData是异步方法。

因此,方法顺序为

  • setData(“ Tom”)
  • setShow(假)
  • useEffect。

在上一个useEffect中,它调用setShow(true),这就是渲染“ Tom”的原因。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么“发出”仅在我第一次单击按钮时不显示名称?

来自分类Dev

第一次单击后,随机按钮游戏为什么会有缺陷?

来自分类Dev

单击按钮会在第一次单击时触发整页回发

来自分类Dev

用户在第一次单击后应关闭表单时可以多次单击按钮

来自分类Dev

第一次单击按钮很慢

来自分类Dev

第一次单击后禁用按钮

来自分类Dev

为什么角度子路由除了第一次不渲染组件?

来自分类Dev

第一次单击时如何禁用Jquery提示保存按钮

来自分类Dev

第一次单击时按钮不起作用

来自分类Dev

JavaFX按钮在第一次单击时没有响应

来自分类Dev

“反应”单选按钮在第一次单击时不起作用

来自分类Dev

第一次单击时如何禁用Jquery提示保存按钮

来自分类Dev

第一次单击某些按钮时,会遍历整个地方

来自分类Dev

JavaFX按钮在第一次单击时没有响应

来自分类Dev

Toastr:第一次单击按钮时未应用toast-top-center

来自分类Dev

jQuery单选按钮在第一次单击时不会触发事件

来自分类Dev

useState 未在第一次渲染时注册

来自分类Dev

UISearchController searchBar在第一次单击时消失

来自分类Dev

函数在第一次单击时未执行

来自分类Dev

为什么UpdatePanel中的按钮在第一次之后不执行JQuery事件

来自分类Dev

为什么我的显示隐藏按钮第一次需要双击

来自分类Dev

当放置在弹出窗口中时,第一次单击时不会触发按钮单击事件

来自分类Dev

反应:请帮助==>为什么控制台日志在第一次渲染时打印两次

来自分类Dev

为什么第一次收费很重要

来自分类Dev

为什么在第一次迭代后就停止了?

来自分类Dev

为什么在使用 append() 时第一次单击下拉列表会一个一个显示选项

来自分类Dev

为什么这仅在第一次显示对话框时起作用?

来自分类Dev

为什么MPMoviePlayerController第一次播放时口吃?

来自分类Dev

为什么Jenkinsfile中的每个循环在第一次迭代时停止

Related 相关文章

  1. 1

    为什么“发出”仅在我第一次单击按钮时不显示名称?

  2. 2

    第一次单击后,随机按钮游戏为什么会有缺陷?

  3. 3

    单击按钮会在第一次单击时触发整页回发

  4. 4

    用户在第一次单击后应关闭表单时可以多次单击按钮

  5. 5

    第一次单击按钮很慢

  6. 6

    第一次单击后禁用按钮

  7. 7

    为什么角度子路由除了第一次不渲染组件?

  8. 8

    第一次单击时如何禁用Jquery提示保存按钮

  9. 9

    第一次单击时按钮不起作用

  10. 10

    JavaFX按钮在第一次单击时没有响应

  11. 11

    “反应”单选按钮在第一次单击时不起作用

  12. 12

    第一次单击时如何禁用Jquery提示保存按钮

  13. 13

    第一次单击某些按钮时,会遍历整个地方

  14. 14

    JavaFX按钮在第一次单击时没有响应

  15. 15

    Toastr:第一次单击按钮时未应用toast-top-center

  16. 16

    jQuery单选按钮在第一次单击时不会触发事件

  17. 17

    useState 未在第一次渲染时注册

  18. 18

    UISearchController searchBar在第一次单击时消失

  19. 19

    函数在第一次单击时未执行

  20. 20

    为什么UpdatePanel中的按钮在第一次之后不执行JQuery事件

  21. 21

    为什么我的显示隐藏按钮第一次需要双击

  22. 22

    当放置在弹出窗口中时,第一次单击时不会触发按钮单击事件

  23. 23

    反应:请帮助==>为什么控制台日志在第一次渲染时打印两次

  24. 24

    为什么第一次收费很重要

  25. 25

    为什么在第一次迭代后就停止了?

  26. 26

    为什么在使用 append() 时第一次单击下拉列表会一个一个显示选项

  27. 27

    为什么这仅在第一次显示对话框时起作用?

  28. 28

    为什么MPMoviePlayerController第一次播放时口吃?

  29. 29

    为什么Jenkinsfile中的每个循环在第一次迭代时停止

热门标签

归档