使用React Hooks的生命周期问题

阿拉斯托

我的用户状态

const [user, setUser] = useState({});

提取功能

    async function checkIfUserIsEnabled() {
        let URL = `http://localhost:8080/users/finduserbytoken?id=`;
        const res = await fetch(URL);
        res.json()
           .then(res => setUser(res))
           .catch(err => setErrors(err));
      }

useEffect(调用fetch方法,checkIfUserIsEnabled

    useEffect(() => {
        verifyEmail(getTokenIdFromURL);
        checkIfUserIsEnabled();
        return () => {
            /* */
        };
    }, []);

返回

    return (
        <div className="emailVerificationWrapper">
        {user.enabled ? <h1>Result is true!</h1> : <h1>Result is false</h1>}
        </div>
    )




我的问题:user.enabled即使setUser在useEffect中调用的状态将状态更新为true,也要在导致的状态始终为false之前调用return方法user.enabled

在进入渲染之前,如何进行状态更新?

伊斯兰·阿布·休加尔

首先,您要调用异步函数,这些函数将不会按的相同顺序执行useEffect,因此我建议您对函数进行如下清理:

const checkIfUserIsEnabled = (user) => {
  if (user)
    setUser({ enabled: true, ...user })
}
const getUser = () => {
  let URL = `http://localhost:8080/users/finduserbytoken?id=`;
  const res = await fetch(URL);
  const user = res.json()
  checkIfUserIsEnabled(user)
}


useEffect(() => {
  verifyEmail(getTokenIdFromURL)
    .then(verified => {
      getUser()
    })
}, []);


  return (
        <div className="emailVerificationWrapper">
           <h1>{` Result is ${user.enabled}`}</h1>
           <br/>
           <div>Current User State:</div>
           <pre>{JSON.stringify(usre)}</pre>
        </div>
    )

现在,您可以更轻松地进行调试和阅读

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用React钩子use的React生命周期

来自分类Dev

React组件生命周期API请求

来自分类Dev

React + Alt:生命周期差距

来自分类Dev

异步React组件生命周期方法

来自分类Dev

了解React生命周期挂钩

来自分类Dev

使用RefCell的结构上的保护模式存在生命周期问题

来自分类Dev

使用HashMap实现在迭代器上映射的函数的生命周期问题

来自分类Dev

调用使用Redis-rs创建Redis连接的函数时,如何防止生命周期问题

来自分类Dev

使用 Any trait 获取对包含引用的结构的引用时的生命周期问题

来自分类Dev

使用Redux时反应生命周期

来自分类Dev

使用 Pandas 计算客户生命周期

来自分类Dev

使用哪种反应生命周期方法

来自分类Dev

使用 Redux 响应生命周期( componentDidMount )

来自分类Dev

在 React 生命周期方法中使用本地方法

来自分类Dev

在使用生命周期参数的函数调用中如何处理结构参数的生命周期?

来自分类Dev

React组件的生命周期,状态和Redux

来自分类Dev

深入了解React Render生命周期

来自分类Dev

React的useEffect何时在组件生命周期内触发?

来自分类Dev

FreshMvvm生命周期问题

来自分类Dev

在Angular 2中使用生命周期接口

来自分类Dev

Wink:如何使用Spring生命周期管理?

来自分类Dev

如何使用生命周期初始化变量?

来自分类Dev

如何使用JPA和实体对象生命周期

来自分类Dev

如何在devops生命周期的开发阶段使用docker?

来自分类Dev

使用生命周期参数为特征分离可变借位

来自分类Dev

使用SignalR集线器的服务的建议生命周期

来自分类Dev

选择特定视图后,如何使用生命周期方法?

来自分类Dev

使用脚本设置 S3 生命周期策略

来自分类Dev

如何使用现有代码实现生命周期事件

Related 相关文章

  1. 1

    使用React钩子use的React生命周期

  2. 2

    React组件生命周期API请求

  3. 3

    React + Alt:生命周期差距

  4. 4

    异步React组件生命周期方法

  5. 5

    了解React生命周期挂钩

  6. 6

    使用RefCell的结构上的保护模式存在生命周期问题

  7. 7

    使用HashMap实现在迭代器上映射的函数的生命周期问题

  8. 8

    调用使用Redis-rs创建Redis连接的函数时,如何防止生命周期问题

  9. 9

    使用 Any trait 获取对包含引用的结构的引用时的生命周期问题

  10. 10

    使用Redux时反应生命周期

  11. 11

    使用 Pandas 计算客户生命周期

  12. 12

    使用哪种反应生命周期方法

  13. 13

    使用 Redux 响应生命周期( componentDidMount )

  14. 14

    在 React 生命周期方法中使用本地方法

  15. 15

    在使用生命周期参数的函数调用中如何处理结构参数的生命周期?

  16. 16

    React组件的生命周期,状态和Redux

  17. 17

    深入了解React Render生命周期

  18. 18

    React的useEffect何时在组件生命周期内触发?

  19. 19

    FreshMvvm生命周期问题

  20. 20

    在Angular 2中使用生命周期接口

  21. 21

    Wink:如何使用Spring生命周期管理?

  22. 22

    如何使用生命周期初始化变量?

  23. 23

    如何使用JPA和实体对象生命周期

  24. 24

    如何在devops生命周期的开发阶段使用docker?

  25. 25

    使用生命周期参数为特征分离可变借位

  26. 26

    使用SignalR集线器的服务的建议生命周期

  27. 27

    选择特定视图后,如何使用生命周期方法?

  28. 28

    使用脚本设置 S3 生命周期策略

  29. 29

    如何使用现有代码实现生命周期事件

热门标签

归档