React-UseEffect钩子与Redux存储在依赖项数组中,并且更新状态以无限循环结束

时间:2020-09-19 01:24:19

标签: javascript reactjs typescript redux

我的redux存储区中有一些特定对象的数组,我这样检索它:

const storeExpenses = useSelector(({ expenses }: RootState) => expenses.items));

然后我将这些费用对象也保存在组件本地状态,因为我不得不进一步过滤它们而不希望在商店中更改它们。

const [expenses, setExpensesInState] = useState<Expense[]>(storeExpenses);

现在,当我的商店支出在其他地方更新时,我也想刷新本地状态,就像这样:

useEffect(() => {
   setExpensesInState(storeExpenses));
}, [storeExpenses]);

但是,这会导致useEffect挂钩无休止的循环。

我的假设是,当我使用setExpensesInState时,我会触发该组件的重绘,然后重新设置该ExpensesInStore变量,这又会再次触发useEffect等。这个假设是正确的还是我误解了其他东西?而我将如何解决这个问题以实现我所需要的?

0 个答案:

没有答案