如何仅针对特定 ID 与 SWR 进行变异?

How to mutate with SWR only for specific ID?

我试着在网上到处找,但我似乎找不到任何这方面的文档,这很奇怪,因为我认为这将是一个普遍的需求。

例如,如果我们尝试获取具有特定 ID 的 post:

const { data } = useSWR(`/api/post/${id}`, fetcher)

然后当我们进行变异时,也许我们有一个编辑 post 的表单:

mutate(`/api/post/${id}`)

强制对特定 ID 进行重新验证,没有任何反应。在这种情况下,正确的做法是什么?

顺便提一下,在没有 id 的情况下进行 SWR 提取以及类似 /api/comments 的操作,其中提取了所有评论,然后 mutate 在执行 mutate('/api/comments')

时重新验证没有问题

希望这是有道理的。我基本上想要实现的是,在用一些 id 更新 post 之后做一个 POST 请求,然后我想用更新后的数据重新呈现页面。

我的印象是当 id 值为动态时 mutate 无法识别密钥

只需从钩子中导入 mutate 函数,它与该键绑定。

const { data, mutate } = useSWR(`/api/post/${id}`, fetcher)

然后调用 mutate()