React native 使用react钩子分派后获取更新的redux状态
我使用action expensesActions.GetExpenseSist从数据库中获取一个列表,该列表反过来更新expense.ExpenseSist中的存储 我正在调用useEffect钩子中的操作,并希望在检索列表后从商店中取回该列表 我下面的代码不起作用,因为顺序不正确,如果我刷新(保存),我确实有列表。如何更改代码,以便在操作完成后检索列表React native 使用react钩子分派后获取更新的redux状态,react-native,react-redux,react-hooks,React Native,React Redux,React Hooks,我使用action expensesActions.GetExpenseSist从数据库中获取一个列表,该列表反过来更新expense.ExpenseSist中的存储 我正在调用useEffect钩子中的操作,并希望在检索列表后从商店中取回该列表 我下面的代码不起作用,因为顺序不正确,如果我刷新(保存),我确实有列表。如何更改代码,以便在操作完成后检索列表 const fetchedList = useSelector(state => state.expense.expenseLi
const fetchedList = useSelector(state => state.expense.expenseList);
// Get expense list
useEffect(() => {
const loadList = async () => {
setIsLoading(true)
await dispatch(expensesActions.getExpenseList())
calculateAverageExpense()
}
loadList()
}, [dispatch]);
您可以使用第二种效果,如下所示:
useEffect(() => {
if (fetchedList.length) calculateAverageExpense();
}, [fetchedList])
这将在每次列表更改时执行calculateAverageExpense。您可以有第二个useEffect,如下所示:useEffect(()=>{if(fetchedList.length)calculateAverageExpense();},[fetchedList])这将在每次列表更改时执行calculateAverageExpense。哦,您现在看起来很简单,非常感谢,请把它改成一个答案,我会接受没有问题,改变一点如何思考组件。有时这可能很棘手。