我有使用钩子的函数组件。在useEffect钩子中,我只想从我的后端获取数据并将结果存储在 state 中。但是,尽管将数据变量添加为依赖项,但 useEffect 仍会在无限循环中触发 -即使数据没有更改。如何阻止 useEffect 连续触发?
我已经尝试了空数组 hack,它确实阻止了 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} />
);
};
Run Code Online (Sandbox Code Playgroud)
我希望 useEffect 在初始渲染后触发,并且仅在 invoiceData 更改时再次触发。