亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

小白,請教各位大佬!React hook 使用useEffect 如何判斷多個值都改變了才執行內部方法?萬分感謝

小白,請教各位大佬!React hook 使用useEffect 如何判斷多個值都改變了才執行內部方法?萬分感謝

九州編程 2019-10-25 21:41:09
Reacthook使用useEffect如何判斷多個值都改變了才執行內部方法?useEffect第二個參數是一個數組,判斷其中的值變化才執行內部方法,但是有沒有什么好的辦法讓他判斷多個值都變了才執行內部方法?(就比如判斷a和b都變了才去todo,不要那種在數組里判斷a再在里面判斷b的方法...)useEffect(()=>{//todo....},[a,b]);
查看完整描述

2 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

functionApp(){
const[a,setA]=useState(0)
const[b,setB]=useState(0)
constchanges=useRef(0)
useEffect(()=>{
if(changeNum.current===3){
//dosomething...
changeNum.current=0
}
},[a,b])
constonAChange=(value)=>{
setA(value)
changeNum.current|=1
}
constonBChange=(value)=>{
setB(value)
changeNum.current|=2
}
return
}
                            
查看完整回答
反對 回復 2019-10-25
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

importReact,{useState,useEffect,useRef}from'react';
constOne=_=>{
const[a,setA]=useState(0);
const[b,setB]=useState(0);
constref=useRef({a,b});
useEffect(()=>{
let{a:prevA,b:prevB}=ref.current;
console.log('更新前:',prevA,prevB);
console.log('更新后:',a,b);
if(prevA!==a&&prevB!==b){
console.log('update!');
ref.current={a,b};
}
},[a,b]);
return(
<>

{a+b}

setA(d=>d+1)}>ChangA
setB(d=>d+1)}>ChangB
);
};
exportdefaultOne;
                            
查看完整回答
反對 回復 2019-10-25
  • 2 回答
  • 0 關注
  • 448 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號