将 SWR 与特定于经过身份验证的用户的数据一起使用

useSWR with data specific to an authenticated user

我想使用 SWR 为登录用户获取数据,但我不确定如何以正确的方式执行此操作。

例如说我想从 api 路径 api/get/cards 为登录的特定用户获取数据。我可以使用 api/get/cards 因为他们在 SWR 中键入,但我假设缓存不会知道数据仅特定于当前用户?然后缓存将只为最后一个用户提供数据,而不一定是当前调用它的用户?这样做的最佳方法是什么?

对于这个精确的场景,您可以将数组作为 key 参数传递给 useSWR

const { data } = useSWR(['/api/get/cards', userId], (url, userId) => { /* Fetching logic */ })

请求的键现在将是两个值的组合,如果 userId 更改,将重新生效。