当我返回选项卡时,为什么 useQuery 使我的组件重新渲染?

Gus*_*Dev 7 javascript reactjs axios react-hooks react-query

我正在使用react-query库,我查了一下,useQuery可以使你的react组件重新渲染,因为它有状态,但奇怪的是,当我更改选项卡时它会重新渲染(例如,我去youtube,然后返回我的应用程序,该组件刚刚重新渲染)。但它只发生在 useQuery 中,我不明白为什么。

编辑:当我单击控制台然后再次单击应用程序时也会发生这种情况

代码很简单:

const { data } = useQuery("pokemon", () =>
    axios("https://pokeapi.co/api/v2/pokemon/")
);
console.log(data);
Run Code Online (Sandbox Code Playgroud)

这确实正在发生。每次我返回应用程序时,它都会再次记录数据。我不知道我错过了什么

for*_*nee 17

如果您使用的是反应查询库,请考虑将refetchOnWindowFocus选项设置为false

所以你的代码应该是这样的

const { data } = useQuery("pokemon", () =>
    axios("https://pokeapi.co/api/v2/pokemon/"), 
    {
      refetchOnWindowFocus: false
    }
);
console.log(data);
Run Code Online (Sandbox Code Playgroud)

您还可以设置一个refetchInterval以毫秒为单位的选项,以仅在特定时间间隔重新获取