我的redux存储区中有一些特定对象的数组,我这样检索它:
const storeExpenses = useSelector(({ expenses }: RootState) => expenses.items));
然后我将这些费用对象也保存在组件本地状态,因为我不得不进一步过滤它们而不希望在商店中更改它们。
const [expenses, setExpensesInState] = useState<Expense[]>(storeExpenses);
现在,当我的商店支出在其他地方更新时,我也想刷新本地状态,就像这样:
useEffect(() => {
setExpensesInState(storeExpenses));
}, [storeExpenses]);
但是,这会导致useEffect挂钩无休止的循环。
我的假设是,当我使用setExpensesInState时,我会触发该组件的重绘,然后重新设置该ExpensesInStore变量,这又会再次触发useEffect等。这个假设是正确的还是我误解了其他东西?而我将如何解决这个问题以实现我所需要的?