使用React钩子派发后获取更新的Redux状态

时间:2020-03-27 12:58:47

标签: react-native react-redux react-hooks

我正在使用动作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]);

1 个答案:

答案 0 :(得分:1)

您可以拥有第二个useEffect,如下所示:

useEffect(() => {
  if (fetchedList.length) calculateAverageExpense();
}, [fetchedList])

每次您的列表更改时,这将执行一次calculateAverageExpense。