如何在useEffect钩子的if块内调用redux动作:

useEffect(async () => {
    if (nameId && selectedGroup === 'AGM') {
        const subPeople = await getSubPeople(nameId);
    }
}, [nameId, selectedGroup]);


我有两个选择框。如果此人在name选择框中键入,我将在name状态下存储选定的nameId id。如果用户选择一个组,则将其存储在selectedGroup中,因此只有在两个条件都匹配的情况下,我才需要调用API端点来获取subPeople

如果我注释此代码,则没有错误。如何使代码段正常工作。

任何帮助表示赞赏:)

最佳答案

您可以将异步逻辑移到一个单独的函数中,并在useEffect中调用它,因为useEffect的回调本身不能是异步的:

useEffect(() => {
  const getPeople = async () => {
    if (nameId && selectedGroup === 'AGM') {
      const subPeople = await getSubPeople(nameId);
      return subPeople; // Or set the state, etc.
    }
  }
  getPeople();
}, [nameId, selectedGroup]);

10-06 04:27