这是我的代码:
useEffect(() => {
if(a change){ do something a}
if(b change){ do something b}
}, [a,b])
如何区分a或b之间的状态变化?
答案 0 :(得分:1)
首先,您应该为每个操作集中一个useEffect
:
useEffect(() => {
// do something a
}, [a])
useEffect(() => {
// do something b
}, [b])
但是对于您的问题,use usePrevious
会将其与先前的值进行比较:
const aRef = usePrevious(a);
useEffect(() => {
// Or use custom comparator compare(a,aRef.current)
if (a !== aRef.current) {
// a changed
aRef.current = a;
}
}, [a ,b])