🗒️闭包引起的问题
2024-3-22
| 2024-3-22
字数 402阅读时长 2 分钟
type
Post
status
Published
date
Mar 22, 2024
slug
summary
工作上遇到个问题,就是子组件调用父组件的函数时,父组件函数里的state数据不是最新的
tags
前端
category
技术分享
icon
password
URL

起因:

工作上遇到个问题,就是子组件调用父组件的函数时,父组件函数里的state数据不是最新的
如下代码
初始时
notion image
更新数据count值后
notion image
children调用的函数依然是旧的数据

原因

引起这个问题原因就是 闭包
 
闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment词法环境)的引用的组合。换而言之,闭包让开发者可以从内部函数访问外部函数的作用域。在 JavaScript 中,闭包会随着函数的创建而被同时创建。
 
react中函数组件,return的都是基于闭包的,比如本文中submit函数,它就是处于parentCompoent的函数之中,所以可以访问到内部属性,又因为useState的特性,会保存状态,所以每次函数更新都不会改变变量值,子函数调用submit时,这个submit还是最开始创建submit的闭包函数
  • 前端
  • Vercel应用绑定自己的域名利用谷歌邮箱别名获取无限Gmail邮箱
    Loading...