rtk 查询不更新 api 数据
rtk query doesn't update api data
我正在使用 rtk 查询来获取数据并在组件中显示。我可以看到数据即将到来,我可以在前端获取数据。
这是我从查询中获得的值,
const { currentData, isFetching, isError } = useListStudentQuery()
它放在 Home.js
上并获取数据。
如果我在 Header 中从 Link 导航到 /create/student
并创建一个 mutation 来创建一个学生。
const navigate = useNavigate()
const [createStudent, {data, isError, isLoading, isSuccess, error}] = useCreateStudentMutation();
useEffect(() => {
// if success
if(isSuccess){
navigate("/")
})
如果成功,我将导航至 /
。当我这样做时,我看不到我的更新列表,而只能看到旧列表。
在 Home.js
根据显示数据的文档,我刚刚返回了这样的数据
return (
currentData && currentData.students.map(student => (
<Table list={student} key={student._id}/>
))
)
我做错了什么吗?非常感谢您的帮助。
RTK查询是缓存。因此,它的任务是保持服务器响应的状态并且不会引起不必要的请求。
如果您的突变更改了另一个查询所依赖的内容,您必须告诉 RTK 查询从服务器重新获取该数据 - 使用 providesTags
和 invalidatesTags
.
的自动失效
我正在使用 rtk 查询来获取数据并在组件中显示。我可以看到数据即将到来,我可以在前端获取数据。 这是我从查询中获得的值,
const { currentData, isFetching, isError } = useListStudentQuery()
它放在 Home.js
上并获取数据。
如果我在 Header 中从 Link 导航到 /create/student
并创建一个 mutation 来创建一个学生。
const navigate = useNavigate()
const [createStudent, {data, isError, isLoading, isSuccess, error}] = useCreateStudentMutation();
useEffect(() => {
// if success
if(isSuccess){
navigate("/")
})
如果成功,我将导航至 /
。当我这样做时,我看不到我的更新列表,而只能看到旧列表。
在 Home.js
根据显示数据的文档,我刚刚返回了这样的数据
return (
currentData && currentData.students.map(student => (
<Table list={student} key={student._id}/>
))
)
我做错了什么吗?非常感谢您的帮助。
RTK查询是缓存。因此,它的任务是保持服务器响应的状态并且不会引起不必要的请求。
如果您的突变更改了另一个查询所依赖的内容,您必须告诉 RTK 查询从服务器重新获取该数据 - 使用 providesTags
和 invalidatesTags
.