如何使用 setState() 的回调? [复制]

Posted

技术标签:

【中文标题】如何使用 setState() 的回调? [复制]【英文标题】:How to use callback of setState()? [duplicate] 【发布时间】:2021-09-28 12:27:37 【问题描述】:

我正在尝试使用 setState() 的回调来检查状态是否正确更改。但是,我收到错误 Expected 1 arguments, but got 2

   setCurrentLength(300, () => 
      console.log('Current length ', currentLength);
   );

如何解决? 谢谢

【问题讨论】:

setState 作为来自 useState 钩子的元组的第二部分返回没有此功能。您尝试使用的回调函数是类 Component 中 this.setState 的一部分。 【参考方案1】:

您正在使用setState 的回调。但是你使用的是useState钩子。

使用应该使用 useEffect 和依赖数组,所以当 currentLength 被更改时,你的 console.log 将被执行。

useEffect(()=>
  console.log('Current length ', currentLength);
, [currentLength]);

【讨论】:

以上是关于如何使用 setState() 的回调? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

useState 是同步的吗? [复制]

更新后如何将函数传递给 SetState 回调? (反应)

如何访问 setState 回调之外的最新状态?

在 React JS 的 this.setState 的回调中使用 this.setState?

使用 setState() 时出现 setState() 回调参数返回了一个 Future

与 setState 回调相比,使用 componentDidUpdate 有啥优势?