RTK 查询 - 如果 ID 未定义则删除缓存条目

RTK Query - Delete cache entry if ID is undefined

我有一个通过 ID 获取用户的 RTK 查询 API。此 ID 存储在状态中。

const useUser = () => {
  // This can be a string or undefined.
  const userID = useTSelector((state) => state.users.userId)
  // If the userID above becomes undefined, 
  // for example if it is set from somewhere else
  // then we should clear the result of the below query from the cache.

  const {data: user} = useGetUserByIdQuery(userId)

  return { user } 
}

但是,如果该 ID 未定义,我想从查询中删除缓存的用户。

开箱即用吗?

您可以设置 skip 或使用 skipToken,这将重置完整​​挂钩状态并且不会触发查询。

import { skipToken } from '@reduxjs/toolkit/query/react'

useGetUserByIdQuery(userId == undefined ? skipToken : userId)