问题描述
我想使用 SWR 为登录用户获取数据,但我不确定如何以正确的方式执行此操作。
例如假设我想从登录的特定用户的 api 路径 api/get/cards
中获取数据。我可以使用 api/get/cards
为他们键入 SWR 但我假设缓存不会知道数据仅针对当前用户?然后缓存将只为最后一个用户提供数据来使用它,而不一定是当前正在调用它的用户?这样做的最佳方法是什么?
解决方法
您可以将一个数组作为 key
参数传递给 useSWR
,以实现此精确场景。
const { data } = useSWR(['/api/get/cards',userId],(url,userId) => { /* Fetching logic */ })
请求的键现在将是两个值的组合,并且会在 userId
更改时重新验证。