猿问

小白,请教各位大佬!React hook 使用useEffect 如何判断多个值都改变了才执行内部方法?万分感谢

Reacthook使用useEffect如何判断多个值都改变了才执行内部方法?
useEffect第二个参数是一个数组,判断其中的值变化才执行内部方法,但是有没有什么好的办法让他判断多个值都变了才执行内部方法?(就比如判断a和b都变了才去todo,不要那种在数组里判断a再在里面判断b的方法...)
useEffect(()=>{
//todo....
},[a,b]);
九州编程
浏览 425回答 2
2回答

长风秋雁

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}

神不在的星期二

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)}>ChangAsetB(d=>d+1)}>ChangB);};exportdefaultOne;
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答