【发布时间】:2021-12-07 11:28:46
【问题描述】:
快速提问,当我尝试在我的应用程序中使用 useEffect 时,如何解决我收到的警告。这是我的代码:
const userUrl = `${process.env.REACT_APP_API_URL}/${id}`;
const [newUser, setNewUser] = useState({
name: "",
email: "",
status: "",
gender: "",
});
useEffect(() => {
if (id) {
const getUser = async () => {
try {
const response = await axios.get(userUrl);
const apiData = response.data.data;
setNewUser({
...newUser,
name: apiData.name,
email: apiData.email,
status: apiData.status,
gender: apiData.gender,
});
} catch (err) {
console.error(err);
}
};
getUser();
} else {
setNewUser({
...newUser,
status: "active",
gender: "male",
});
}
}, [userUrl, id]);
这是完整的警告消息:React Hook useEffect has a missing dependency: 'newUser'. Either include it or remove the dependency array. You can also do a functional update 'setNewUser(n => ...)' if you only need 'newUser' in the 'setNewUser' call
我尝试在 useEffect 钩子的第二个参数中添加 newUser,但是我得到了最大深度错误,所以如果有人知道如何解决这个问题,我将不胜感激。
【问题讨论】:
-
尝试使用回调方法
setNewUser(prev => ({...prev, YOUR_UPDATES})) -
成功了,谢谢
标签: reactjs react-hooks use-effect use-state