Javascript 如何在组件装载和状态更改时运行useEffect

Javascript 如何在组件装载和状态更改时运行useEffect,javascript,react-hooks,Javascript,React Hooks,我有一个useEffect函数,它只在页面状态更改时运行,但我希望在组件装载和状态更改上都运行此函数 为了实现这一点,我在依赖关系数组中使用了两个变量 ,[第页,[] 在依赖项数组中使用此表达式会在控制台中显示警告,并且useEffect方法无限运行,我不知道如何修复此问题 我的作用是 //页面更改时从服务器获取数据 useffect(()=>{ axios .get(fetchURL,{头:{授权:AuthStr}}) 。然后((响应)=>{ //如果请求是好的。。。 如果(答复){ set

我有一个useEffect函数,它只在页面状态更改时运行,但我希望在组件装载和状态更改上都运行此函数

为了实现这一点,我在依赖关系数组中使用了两个变量

,[第页,[]

在依赖项数组中使用此表达式会在控制台中显示警告,并且useEffect方法无限运行,我不知道如何修复此问题

我的作用是

//页面更改时从服务器获取数据
useffect(()=>{
axios
.get(fetchURL,{头:{授权:AuthStr}})
。然后((响应)=>{
//如果请求是好的。。。
如果(答复){
setData(response.data);
}
})
.catch((错误)=>{
toast.error('出现问题,请刷新');
console.log(错误);
});
//eslint禁用下一行react HOOK/deps
},[第页]


装载后,如果在依赖项数组中传递的“page”的值有任何更改,则代码将运行。在“页面”中执行一些更改,您将看到它将重新呈现。如果您正在使用其他实体推断状态发生了变化,则应将其也包括在依赖项数组中。

当前版本已在挂载上运行?您的
useffect
仅在组件挂载上运行
[page]
依赖项。发生了什么事情让您认为它不存在?您不需要在dep数组中放入任何其他参数,每个useEffect都已在装载时运行,在dep数组中添加参数只意味着它也会在组件装载时始终调用这些deps changeuseEffect时运行。当页面状态更改时,添加[page]依赖项也将调用useEffect。只添加[]将防止它总是调用自己。是的,当前版本在装载时运行,但我在组件中有一个更新部分,更新数据,每次更新后,我希望运行此useEffect并获取最新数据。现在,在我更新数据之后,我必须刷新页面以查看更改。