背景: 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]);
好簡單的說.
