【发布时间】:2020-09-18 22:20:50
【问题描述】:
我正在尝试更新 useEffect 中的状态,我得到:
React Hook
useEffect缺少依赖项:'user'。要么包含它,要么删除依赖数组。如果您在“setUser”调用 react-hooks/exhaustive-deps 中只需要“user”,也可以进行功能更新“setUser(u => ...)”
如果我将用户状态作为依赖项,那么我会得到一个无限循环。
const [user, setUser] = useState({
displayName: '',
hasPassword: false,
...
});
let { userId } = useParams();
useEffect(() => {
const checkPassword = async (userId) => {
try {
const res = await UserService.checkPassword(userId);
if (res.status === 200) {
setUser({...user, hasPassword: res.data.hasPassword });
}
} catch (err) {
setUser({...user, hasPassword: false });
}
};
checkPassword(userId);
}, [userId, user]);
如果我从依赖项数组中删除用户,则一切正常,但我正试图摆脱该警告。我只需要执行一次这个函数。
【问题讨论】:
标签: javascript reactjs react-hooks