【发布时间】:2023-02-01 21:05:04
【问题描述】:
每当某个状态发生变化时,我都会尝试使用 react-query 重新获取我的用户数据。但是当然我不能在一个钩子中使用一个钩子,所以我不知道如何设置对这个状态的依赖。
当前获取用户的代码是:
const {data: userData, error: userError, status: userStatus} = useQuery(['user', wallet], context => getUserByWallet(context.queryKey[1]));
这很好用。但是我需要在全局状态钱包更改时使它失效。我想我可以做类似的东西
useEffect(
() => {
useQueryClient().invalidateQueries(
{ queryKey: ['user'] }
)
},
[wallet]
)
但这不起作用,因为 useQueryClient 是一个钩子,不能在回调中调用。
关于如何解决这个问题的任何想法?
一般的想法是钱包可以随时在应用程序中更改,可以连接到不同的用户。因此,每当钱包状态发生变化时,都需要获取该用户。
谢谢
【问题讨论】:
标签: reactjs react-hooks react-query