使用unstable_cache进行缓存不起作用

问题描述 投票:0回答:1

经过多次尝试并认为我的代码中有错误,我尝试了下一个官方文档中关于unstable_cache的示例。

const getCachedUser = unstable_cache(
  async (id) => getEmployerByAuthID(id),
  ["my-app-user"],
);

export default async function MyProfileInfo() {
  const { authUser, userData } = await getAuthUser({
    redirectionOnError: pages.login,
  });

  let employer;
  try {
    employer = await getCachedUser(authUser.id);
  } catch (err) {
    console.log(err);
  }
}

在 getEmployerByAuthID 内部,我有一个控制台日志来查看该函数是否已被调用。 它总是被执行,而我期望结果来自缓存。

unstable_cache 还工作吗?我现在不想切换到 nextjs15。 或者有什么配置可以让它工作吗?

reactjs next.js caching
1个回答
0
投票

我建议您检查以下事项

  1. 缓存密钥(在我看来它应该是唯一的)
  2. 函数签名:由于unstable_cache需要与异步函数一起使用,因此请确保您的函数返回可缓存的正确数据

这是我更新的一些基础知识,你可以尝试查看

const getCachedUser = unstable_cache(
  async (id) => getEmployerByAuthID(id),
  (id) => [`my-app-user-${id}`], // Cache key based on the user ID
);


export default async function MyProfileInfo() {
  const { authUser, userData } = await getAuthUser({
    redirectionOnError: pages.login,
  });

  let employer;
  try {
    // Ensure that this ID is correct and the cache is properly utilized
    employer = await getCachedUser(authUser.id);
  } catch (err) {
    console.log(err);
  }
}`
© www.soinside.com 2019 - 2024. All rights reserved.