背景: 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]);
好简单的说.
原文地址:https://www.cnblogs.com/Evan666Blog/p/10696660.html
时间: 2024-10-14 09:26:32