【问题标题】:useSWR with data specific to an authenticated useruseSWR 与特定于经过身份验证的用户的数据
【发布时间】:2021-09-17 10:37:48
【问题描述】:

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

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

【问题讨论】:

  • 你能告诉我们更多关于端点 api/get/cards 的信息吗?例如,是否必须在请求中传入唯一标识符(例如用户 ID)作为查询参数?
  • 我必须在 Authorization 标头中传递一个唯一标识符,该标识符向后端标识它是哪个用户 ID 并验证它们。所以也许我可以在我给 SWR 的密钥中使用这个唯一标识符?

标签: reactjs next.js swr


【解决方案1】:

您可以将数组作为key 参数传递给useSWR,以实现这种精确的场景。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 2020-11-29
    • 2020-11-15
    • 2016-01-17
    • 1970-01-01
    相关资源
    最近更新 更多