在自定义hook中使用useEffect()来避免无限循环。例如,假设需要计算数组中数字的总和,可以编写以下代码:
import { useState, useEffect } from 'react';
function useArraySum(arr) {
const [sum, setSum] = useState(0);
useEffect(() => {
let total = 0;
for (let num of arr) {
total += num;
}
setSum(total);
}, [arr]);
return sum;
}
在此示例中,使用useEffect()来计算总和。每次传入的数组arr更新时,useEffect()会重新计算总和并更新state。避免了无限循环的问题。