React Hook 下setState的回调

Posted evan666blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Hook 下setState的回调相关的知识,希望对你有一定的参考价值。

背景: React 的hook出现了已经很长一段时间了,最近着手想把以前的reacrt16.5.0的代码换成hook的写法
Hook以前的写法:
     ex:
        

   getDataInfo(dataId) {
      this.set({
         dataId: dataId
      }, ()=>{
             setDatainfo(dataId);
      })
   } 
  setDatainfo (dataId) {
       .....xxxxxx
  }


原以为直接

function getDataInfo(props) {
   const [dataId, setDataId] = useState(‘‘);
   setDataId(dataId, ()=>{setDataInfo(dataId)});
}

然后报错了,不支持第二个参数;
在react官方git上搜罗了一下解决方案
https://github.com/facebook/react/issues/14174

Abramov 大神居然也回了,没必要使用的第二个参数,虽然各路大神都贴出了解决方案,但是跟着Abramov的思路应该没问题的;
忽然想到了useEffect;
于是动手开始实验:

       useEffect(()=>{
           setDataInfo(dataId);
        },[dataId]);

好简单的说.

 

 




以上是关于React Hook 下setState的回调的主要内容,如果未能解决你的问题,请参考以下文章

react 常见setState的原理解析

React Hook SetState 导致无限循环

react使用hook——useState的坑

为啥 React setState hook 没有立即更新? [复制]

React setState hook 之前的 param 对象给出了不一致的值

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