首页 > 其他分享 >2023-10-06 useState数据渲染不同步==》async await

2023-10-06 useState数据渲染不同步==》async await

时间:2023-10-06 15:11:06浏览次数:35  
标签:10 arr 06 渲染 await useState async Math

业务:点击按钮增加数据并渲染出来。

框架:antd+ts+react。

原来写法:

const [tagData, setTagData] = useState<Array<number>>([]);

点击事件:

  // 添加标签
  const addTag = () => {
    let arr: (number)[] = [];
    arr = tagData;
    arr.push(Math.floor(Math.random() * 10000) + 1);
    setTagData(arr);
  }

问题就是点击添加标签,点第一次能正确把数据渲染出来,点第二次以上,就不能把数据渲染出来了,而是你隐藏了这个页面(比如你最小化网页浏览器)然后再打开它就能把数据显示出来。

解决方案其实很简单,就给它加个async await就行了,直接在点击事件里改:

  // 添加标签
  const addTag = async () => {
    let arr: (number)[] = [];
    arr = tagData;
    arr.push(Math.floor(Math.random() * 10000) + 1);
    await setTagData(arr);
  }

 

注意:useState是同步的,不是异步的!

 

标签:10,arr,06,渲染,await,useState,async,Math
From: https://www.cnblogs.com/iuniko/p/17744597.html

相关文章

  • 力扣-LCP 06-拿硬币
    桌上有n堆力扣币,每堆的数量保存在数组coins中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。示例1:输入:[4,2,1]输出:4解释:第一堆力扣币最少需要拿2次,第二堆最少需要拿1次,第三堆最少需要拿1次,总共4次即可拿完。示例2:输入:[2,3,10......
  • 2023-10-06 Warning: [antd: Switch] `value` is not a valid prop, do you mean `che
    该报错意思是你用的这个switch组件对应的属性应该是checked而不是value,后者应该是antd默认设置的属性,可以通过valuePropName来手动指定对应的属性值。如:<FormItemname="status"label="状态"valuePropName="checked"rules={[{required:true}]}><Switch/></FormIte......
  • 10月2总结
    在学习中使用哪些工具“工欲善其事必先利其器。”在网络技术的学习过程中,往往需要使用一些工具,来辅助我们学习,以此将抽象的技术通过具体的方式来表现出来,便于加深网络理论的印象。今天,我将列举我在学习过程中使用过的工具。以网络仿真工具为例,建议初学者选择一个厂商的软件作为......
  • 10月6日总结
    访问者模式(VisitorPattern)是一种强大的行为型设计模式,它允许你在不改变被访问对象的类的前提下,定义新的操作和行为。本文将详细介绍访问者模式,包括其定义、举例说明、结构、实现步骤、Java代码实现、典型应用场景、优缺点、类似模式以及最后的小结。1模式的定义访问者模式允许......
  • 10月5日总结
    四、用go语言,重写ENQUEUE和DEQUEUE的代码,使之能处理队列的下溢和上溢。文心一言:在Go语言中,我们可以使用切片来实现队列。下面是如何实现ENQUEUE和DEQUEUE操作,同时处理队列的下溢和上溢的情况:packagemainimport"fmt"typeQueuestruct{elements[]interface{}}......
  • 10月4日总结
    在deepin23上编译gcc13.2deepin20素以软件版本过老被人诟病,换成最新的deepin23之后情况大有好转,但是gcc版本为11.2,鄙人对此仍有意见,所以特意研究了如何编译一份较新的gcc来用。1.下载源码包http://mirrors.ustc.edu.cn/gnu/gcc/我相关在中科大镜像站下载东西,选择13.2版本的压......
  • 深度学习模型部署与优化:策略与实践;L40S与A100、H100的对比分析
    ★深度学习、机器学习、生成式AI、深度神经网络、抽象学习、Seq2Seq、VAE、GAN、GPT、BERT、预训练语言模型、Transformer、ChatGPT、GenAI、多模态大模型、视觉大模型、TensorFlow、PyTorch、Batchnorm、Scale、Crop算子、L40S、A100、H100、A800、H800随着生成式AI应用的迅猛发展......
  • 板刷2023.10.04
    CF1878F.VasilijeLovesNumberTheory题解:约数个数+取模性质对\(n\)质因子分解得到,\(n=p_1^{\alpha_1}p_2^{\alpha_2}...p_k^{\alpha_k}\)那么显然\(d(n)=(\alpha_1+1)\times(\alpha_2+1)...(\alpha_k+1)\)根据题意可以得到:\(n\%d(n)=0\)的时候一定......
  • 202310061227-《心得:低版本mysql配置一,些轮子插件》
    1.对于mysql5.7.42,驱动(connector)选择:5.1.46。2.测试链接时:useSSL=true&enabledTLSProtocols=TLSv1.1 驱动链接字符串上要拼接上。3.驱动链接字符串:高版本mysql,意味着高版本connector,选>=8;低版本,选择5.x;               高版本mysql,com.my......
  • 2023-10-02-周一
    吾日三省吾身titlecontent简单评价这一天只能说差强人意今天运动了吗?0学习还满意否0.5会不会又emo了0今日学习任务titlecontent学习ELF文件格式0.2安卓开发0呃..上午才是搞笑的我很早起来,洗了一个澡..然后还是很困...所以......