首页 > 其他分享 >react forEach 里面 异步更新 setState

react forEach 里面 异步更新 setState

时间:2022-09-28 20:11:56浏览次数:76  
标签:const dd list setList react forEach setState

如题

要是等数组 处理好 , 再setState 中间 就会卡一段时间

const [list, setList] = useState([]);

let arr= []

for (const item of sourceList) {
  let dd = await solve(item) // 耗时操作
  arr.push(item)
}

setList(arr)

然后 就想在 forEach 里面 顺便 setState 试试

const [list, setList] = useState([]);

sourceList.forEach(async (x)=>{
  let dd = await solve(x) // 耗费时操作
  setList(list.concat(dd))
})

结果发现 sourceList 老是最后一个元素 塞进去了 ,别的 元素都抛弃了

后来发现可以通过 setState 回调来解决

setCounter(prevCounter => prevCounter +1)

const [list, setList] = useState([]);

sourceList.forEach(x=>{
  let dd = await solve(x) // 耗费时操作
  setList(prevState=>[...prevState,dd])
})

这样就没有问题了, 数组 也是 异步 push 进 list 里面啦

参考来源 https://www.reddit.com/r/reactjs/comments/ouxq7z/update_state_from_a_foreach/

标签:const,dd,list,setList,react,forEach,setState
From: https://www.cnblogs.com/ifnk/p/16739426.html

相关文章

  • 如何学习ReactJS:初学者完整指南
    英文| https://www.geeksforgeeks.org/how-to-learn-reactjs-a-complete-guide-for-beginners/?ref=rp翻译 |web前端开发(ID:web_qdkf)每个前端开发人员和Web开发人员都知......
  • React核心工作原理
    ##1.1、虚拟DOM常见问题:reactvirtualdom是什么?说一下diff算法?拿到一个问题,一般回答都是是什么?为什么?怎么办?那就按照这个思路来吧!what用JavaScript对象表示DOM......
  • 深度讲解React Props
    一、props的介绍当React遇到的元素是用户自定义的组件,它会将JSX属性作为单个对象传递给该组件,这个对象称之为“props”。函数声明的组件,会接受一个props形参,获取属性传递......
  • React核心原理与虚拟DOM
    React基础JSXconstelement=<h1>Hello,world!</h1>;JSX,既不是字符串也不是HTML,本质上是一个JavaScript的语法扩展,且更接近于JavaScript,是通过React.createElemen......
  • Vue、React、Angular之三国杀,web前端入坑第六篇(上)
      「懒癌引发血案 」目前前端技术栈发生了翻天覆地的变化,上篇刚写了只会jquery要失业,再不学新的你就要被淘汰,虽然有点危言耸听,不过现实情况确实是这样。vue、react、an......
  • # react 使用 redux 状态管理器
    react使用redux状态管理器学习资料英文文档:https://redux.js.org/中文文档:http://www.redux.org.cn/Github地址:https://github.com/reactjs/redux是什么redux......
  • 一份react面试题总结
    React中constructor和getInitialState的区别?两者都是用来初始化state的。前者是ES6中的语法,后者是ES5中的语法,新版本的React中已经废弃了该方法。getInitialState是ES5......
  • 2022 年你必须使用的 5 个令人惊讶的 React 工具:
    2022年你必须使用的5个令人惊讶的React工具:我们确实看到了一些最好的React开发工具。事实上,这使得开发人员几乎不可能选择他们最好的工具。尽管如此,开发人员应该......
  • ajax 和 react 最显着的区别是什么?
    ajax和react最显着的区别是什么?What’sthemostremarkabledifferencebetweenajaxandreact?目前,Ajax和React之间最大的区别之一是它们是帮助不同网页或应用......
  • React 组件的生命周期
    生命周期(旧)组件的生命周期可分成三个状态:Mounting(挂载):已插入真实DOMUpdating(更新):正在被重新渲染Unmounting(卸载):已移出真实DOM挂载阶段:ReactDOM.render()......