用不同的数据重新获取react查询

我尝试重新获取每个按钮单击并获取新数据

const {refetch,data,isLoading} = useQuery(
    "getkurs",() =>fetch( `https://free.currconv.com/api/v7/convert? 
      q=${selected.country.currencyId}_IDR&compact=ultra&apiKey=${process.env.COUNTRY_API}`).then((res) => 
    res.json()),{ enabled: false, refetchOnWindowFocus: false }
  );

<button onclick={()=>refetch()}>click</button>

它只工作一次,但在第二次等它不起作用,有人可以帮助我吗?

stack overflow refetch with different data react query
原文答案

答案:

作者头像

您可以将参数传递给查询键,因为当查询键中的值更改时,React Query 会自动触发重新获取。

const [selectedCurrencyId, setSelectedCurrencyId] = React.useState()

const {data,isLoading} = useQuery(['getkurs', selectedCurrencyId], () => fetch(....))

所以如果你想重新获取,你可以用货币值调用 setSelectedCurrencyId