React的usestate设置了值后马上打印获取不到最新值

 我们在使用usestate有时候设置了值后,我们想要更新一些值,这时候,我们要想要马上获取这个值去做一些处理,发现获取不到,这是为什么呢?

效果如下:

1、原因如下

React中,当你使用useState钩子来管理状态,并尝试更新这个状态时,需要注意React的
状态更新是异步的
。这意味着当你调用setExpandKeysData函数时,React不会立
即更新expandKeysData的值,而是将这个更新排入队列,并在未来的某个时间点(通常是
当前的事件处理函数执行完毕后)应用这个更新。

我们要怎么能正确获取到呢?可以在useEffect中获取,注意如果有查询列表 的useEffect不要放一起,避免一直刷新,单独写一个新的useEffect即可

因此,如果你在设置状态后立即打印expandKeysData的值,你可能会看到旧的值,而不是新的值。这是因为React还没有来得及应用这个更新。为了解决这个问题,你可以使用几种方法:

方法一:使用useEffect钩子来观察状态变化:useEffect可以让你在状态变化后执行一些副作用操作,比如打印新的状态值。你可以将expandKeysData作为useEffect的依赖项之一,这样每当expandKeysData
变化时,useEffect就会执行。

方法二:在回调函数中更新状态:如果你需要在状态更新后执行某些操作,并且这些操作依赖于新的状态值,你可以考虑将这些操作放在一个回调函数中,并通过setState函数的第二个参数(如果它是函
数形式的话)来传递这个回调函数。但是,需要注意的是,useState的更新函数并不直接支持这种形式的回调。因此,这种方法更适用于useReducer或类组件中的setState。不过,对于useState,你可
以通过useEffect来实现类似的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/381602.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式11-原型模式

设计模式11-原型模式 写在前面对象创建模式典型模式原型模式动机结构代码推导应用特点要点总结 原型模式与工厂方法模式对比工厂方法模式原型模式什么时候用什么模式 写在前面 对象创建模式 通过对象创建模式绕开动态内存分配来避免创建过程中所导致的耦合过紧的问题。从而支…

谷粒商城实战笔记-40-前端基础-Vue-计算属性、监听器、过滤器

文章目录 一,计算属性1,用途2,用法2.1 定义View2.2 声明计算属性 3,注意事项 二,监听器1. 使用 watch 监听属性的变化 三,过滤器1,定义局部过滤器2,定义全局过滤器3,使用…

GraphPad prism处理cck-8获得ic50

C组为空白对照组,a组为dmso对照组,b组为细胞加药组,八个梯度的药物浓度 一、数据转化 首先,打开软件,选项中选择x的第一项,y的第二项,单一药物浓度设定了几个孔就选几 把自己的药物浓度直接复制…

C语言·函数(超详细系列·全面总结)

前言:Hello大家好😘,我是心跳sy,为了更好地形成一个学习c语言的体系,最近将会更新关于c语言语法基础的知识,今天更新一下函数的知识点,我们一起来看看吧! 目录 一、函数是什么 &a…

一分钟图情论文:《演化视角下图像的语义表示》

随着图像资源的不断积累,如何有效地表示图像的语义信息成为提高图像检索效率的关键问题。由武汉大学信息管理学院的李旭晖、吴燕秋和王晓光教授合著论文《演化视角下图像的语义表示》中提出了一种基于“演化”视角的图像语义层次描述框架来剖析图像的语义表示问题。…

Android11 framework 禁止三方应用开机自启动

Android11应用自启动限制 大纲 Android11应用自启动限制分析验证猜想:Android11 AOSP是否自带禁止三方应用监听BOOT_COMPLETED​方案禁止执行非系统应用监听到BOOT_COMPLETED​后的代码逻辑在执行启动时判断其启动的广播接收器一棍子打死方案(慎用&#…

DevExpress WPF中文教程 - 为项目添加GridControl并将其绑定到数据

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

【思科】链路聚合实验配置和背景

【思科】链路聚合实验配置和背景 背景链路聚合基本概念链路聚合聚合接口 思科链路聚合协议01.PAgP协议02.LACP协议 思科链路聚合模式LACP协议模式PAgP协议模式ON模式 实验准备配置二层链路聚合LACP协议模式SW1SW2PC1PC2查看LACP聚合组建立情况查看LACP聚合端口情况查看逻辑聚合…

2-40 基于Matlab编写的3维FDTD(时域有限差分算法)计算了球的RCS经典散射问题

基于Matlab编写的3维FDTD(时域有限差分算法)计算了球的RCS经典散射问题,采用PEC作边界,高斯波束激励。程序已调通,可直接运行。 2-40 3维FDTD 时域有限差分算法 - 小红书 (xiaohongshu.com)

Python自动化DevOps任务入门

目录 Python自动化DevOps任务入门 一、环境和工具配置 1. 系统环境与Python版本 2. 虚拟环境搭建 3. 必要的库安装 二、自动化部署 1. 使用Fabric进行流式部署 2. 使用Ansible编写部署剧本 三、持续集成和测试 1. 配置CI/CD工具 选择工具 配置工具 构建和测试自动…

深入理解设计模式:六大经典模式解析

深入理解设计模式:六大经典模式解析 1. 单例模式(Singleton Pattern)1.1 概述1.2 示例场景1.3 实现要点 2. 工厂模式(Factory Pattern)2.1 简单工厂2.2 抽象工厂2.3 示例场景2.4 实现要点 3. 观察者模式(Ob…

从输入 URL 到页面展示到底发生了什么

从输入 URL 到页面展示到底发生了什么呢? 1.在浏览器输入一个域名回车 2.首先会先检查浏览器缓存里是否有缓存资源,如果缓存中有,会直接在浏览器上显示页面内容,如果没有,在发送http请求之前,浏览器会向D…

设计模式-抽象工厂

抽象工厂属于创建型模式。 抽象工厂和工厂设计模式的区别: 工厂模式的是设计模式中最简单的一种设计模式,主要设计思想是,分离对象的创建和使用,在Java中,如果需要使用一个对象时,需要new Class()&#xff…

Step-DPO 论文——数学大语言模型理解

论文题目:STEP-DPO: STEP-WISE PREFERENCE OPTIMIZATION FOR LONG-CHAIN REASONING OF LLMS 翻译为中文就是:“LLMs长链推理的逐步偏好优化” 论文由港中文贾佳亚团队推出,基于推理步骤的大模型优化策略,能够像老师教学生一样优…

Vulnhub靶场DC-7练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集1. 获取用户名/密码2. ssh连接目标主机3. drush命令修改Drupal密码 0x03 漏洞查找与利用1. Drupal写入php木马2. 连接shell3. 反弹shell并提权 0x04 总结 0x00 准备 下载链接:https://download.vulnhub.com/dc/DC-…

深入理解Linux网络(四):TCP接收阻塞

TCP socket 接收函数 recv 发出 recvfrom 系统调用。 进⼊系统调⽤后,⽤户进程就进⼊到了内核态,通过执⾏⼀系列的内核协议层函数,然后到 socket 对象的接收队列中查看是否有数据,没有的话就把⾃⼰添加到 socket 对应的等待队列⾥…

c++网络编程实战——开发基于ftp协议的文件传输模块(二) 配置ftp服务与手动执行ftp命令

配置FTP服务 一.前言 博主的环境是阿里云服务器,操作系统版本为 ubuntu20.04,一下所有操作都基于以上环境下进行的操作,同时为了简化操作我将开放同一个云服务器的不同端口,让它同时充当服务端和客户端,大家如果想测试效果更好且…

巧用Vue3 composition api的计算属性实现扁平化tree连线

本示例节选自vue3最新开源组件实战教程大纲(持续更新中)的tree组件开发部分。将进一步把基于Vue3 composition api的computed计算属性特性应用到组件开发实战中,继续以最佳实践的方式呈现给大家。 下面我们要实现的是扁平化的dom结构所呈现的…

【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理

初阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!时间与空间复杂度的深度剖析深入解析顺序表:探索底层逻辑深入解析单链表:探索底层逻辑深入解析带头双向循环链表:探索底层逻辑深入解析栈:探索底层逻辑深入解析队列:探索底层逻辑深入解析循环队列:探索…

最新缺失msvcp140.dll的多种解决方法,有效解决电脑dll问题

msvcp140.dll 是一个关键的动态链接库(DLL)文件,属于 Microsoft Visual C 2015 Redistributable 的一部分。它为使用 Microsoft Visual C 编译的应用程序提供了运行时支持,确保这些应用程序能够正常运行。以下是对 msvcp140.dll 的…