我有使用钩子的功能组件。在useEffect挂钩中,我只想从后端获取数据并将结果存储在 state 中。然而,尽管将 data 变量添加为依赖项,useEffect 仍然会在无限循环中触发 -即使 data 没有更改。如何阻止 useEffect 连续触发?
我已经尝试过空数组破解,它确实阻止了 useEffect 连续触发,但这不是所需的行为。例如,如果用户保存新数据,useEffect 应该再次触发以获取更新的数据——我不想模拟 componentDidMount。
const Invoices = () => {
const [invoiceData, setInvoiceData] = useState([]);
useEffect(() => {
const updateInvoiceData = async () => {
const results = await api.invoice.findData();
setInvoiceData(results);
};
updateInvoiceData();
}, [invoiceData]);
return (
<Table entries={invoiceData} />
);
};
我希望 useEffect 在初始渲染后触发,并且仅在 invoiceData 更改时再次触发。