如何在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]);