如何从 RTK 查询中获取部分数据
How to get partial data from RTK query
我开始使用 RTK 查询,当我只需要获取缓存数据的一个元素时,我不确定是否正确使用它。
我缓存了一个这样的对象:
{
id: "1",
age: 18,
name: "John"
}
在我的一个钩子中,我使用了以下代码:
const { data: { id } = {} } = useMyQuery();
所以我的问题是,如果“name”或“age”发生变化但“id”没有变化,我该如何避免触发我的钩子。
有一种方法可以在此缓存数据上创建备忘录选择器吗?
您想使用 selectFromResult:
const { data: { id } = {} } = useMyQuery(undefined, {
selectFromResult: ({isSuccess, data}) => ({ isSuccess, data: data.id })
};
请注意,这还允许您删除 isLoading
、isSuccess
等属性,这也会导致潜在的重新渲染 - 此示例仅保留 isSuccess
.
我开始使用 RTK 查询,当我只需要获取缓存数据的一个元素时,我不确定是否正确使用它。
我缓存了一个这样的对象:
{
id: "1",
age: 18,
name: "John"
}
在我的一个钩子中,我使用了以下代码:
const { data: { id } = {} } = useMyQuery();
所以我的问题是,如果“name”或“age”发生变化但“id”没有变化,我该如何避免触发我的钩子。
有一种方法可以在此缓存数据上创建备忘录选择器吗?
您想使用 selectFromResult:
const { data: { id } = {} } = useMyQuery(undefined, {
selectFromResult: ({isSuccess, data}) => ({ isSuccess, data: data.id })
};
请注意,这还允许您删除 isLoading
、isSuccess
等属性,这也会导致潜在的重新渲染 - 此示例仅保留 isSuccess
.