React hook 使用useEffect 如何判断多个值都改变了才执行内部方法?
useEffect第二个参数是一个数组, 判断其中的值变化才执行内部方法, 但是有没有什么好的办法让他判断多个值都变了才执行内部方法? (就比如判断a和b都变了才去todo, 不要那种在数组里判断a再在里面判断b的方法...)
useEffect(() => {
// todo....
}, [a, b]);
useEffect第二个参数是一个数组, 判断其中的值变化才执行内部方法, 但是有没有什么好的办法让他判断多个值都变了才执行内部方法? (就比如判断a和b都变了才去todo, 不要那种在数组里判断a再在里面判断b的方法...)
useEffect(() => {
// todo....
}, [a, b]);
function App () {
const [a, setA] = useState(0)
const [b, setB] = useState(0)
const changes= useRef(0)
useEffect(() => {
if (changeNum.current === 3) {
// do something...
changeNum.current = 0
}
}, [a, b])
const onAChange = (value) => {
setA(value)
changeNum.current |= 1
}
const onBChange = (value) => {
setB(value)
changeNum.current |= 2
}
return <div>
<A onChange={onAChange} />
<B onChange={onBChange} />
</div>
}
还是老老实实写两个 useEffect
函数吧
useEffect(() => {
// todo....
}, [a]);
useEffect(() => {
// todo....
}, [b]);
8 回答4.5k 阅读✓ 已解决
6 回答3.1k 阅读✓ 已解决
5 回答2.7k 阅读✓ 已解决
6 回答2.2k 阅读
5 回答6.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答2.4k 阅读