如何在useEffect
钩子的if块内调用redux动作:
useEffect(async () => {
if (nameId && selectedGroup === 'AGM') {
const subPeople = await getSubPeople(nameId);
}
}, [nameId, selectedGroup]);
我有两个选择框。如果人员在name
选择框中键入内容,则我将name
的选定ID存储在nameId
状态下。如果用户选择了一个组,则将其存储在selectedGroup
中,因此只有在两个条件都匹配的情况下,我才需要调用API端点来获取subPeople
。
如果我注释此代码,则没有错误。如何使代码段正常工作。
我们将不胜感激:)
答案 0 :(得分:4)
您可以将异步逻辑移到一个单独的函数中,并在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]);