Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 使用react钩子分派后获取更新的redux状态_React Native_React Redux_React Hooks - Fatal编程技术网

React native 使用react钩子分派后获取更新的redux状态

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

我使用action expensesActions.GetExpenseSist从数据库中获取一个列表,该列表反过来更新expense.ExpenseSist中的存储 我正在调用useEffect钩子中的操作,并希望在检索列表后从商店中取回该列表

我下面的代码不起作用,因为顺序不正确,如果我刷新(保存),我确实有列表。如何更改代码,以便在操作完成后检索列表

   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。哦,您现在看起来很简单,非常感谢,请把它改成一个答案,我会接受没有问题,改变一点如何思考组件。有时这可能很棘手。