我正在使用动作actionsActions.getExpenseList从数据库中获取列表,这反过来又更新了expense.expenseList中的商店 我在useEffect挂钩中调用该操作,并希望在检索到该列表后从商店取回该列表。
我的下面的代码不起作用,因为顺序不正确,如果我刷新(使用保存),则确实具有该列表。我该如何更改代码,以便在操作完成后重新获得列表?
const fetchedList = useSelector(state => state.expense.expenseList);
// Get expense list
useEffect(() => {
const loadList = async () => {
setIsLoading(true)
await dispatch(expensesActions.getExpenseList())
calculateAverageExpense()
}
loadList()
}, [dispatch]);
答案 0 :(得分:1)
您可以拥有第二个useEffect,如下所示:
useEffect(() => {
if (fetchedList.length) calculateAverageExpense();
}, [fetchedList])
每次您的列表更改时,这将执行一次calculateAverageExpense。