React闭包陷阱

 异步加载数据,组件渲染之后,点击事件实时获取最新数据。

 初始-状态设置阶段

const [allCityList, setAllCityList] = useState<TreeNodes[]>([]);

 初始-绑定点击事件

<a key="set" title="编辑" onClick={async () =>  await handleEditId(record)} >编辑</a>    

 

handleEditId 函数在首次渲染阶段就创建了事件,捕获的状态也是首次创建的 allCityList 值(空值),后面 allCityList  更新了状态值,handleEditId 事件内仍然是 旧值。

所以要拿到新值,就要用到 useRef 储存值。

 

posted @ 2026-03-27 10:18  微宇宙  阅读(2)  评论(0)    收藏  举报