我在我的应用程序中使用 ReactQuery。我创建了一个带有状态的自定义钩子。我导出在我的应用程序中更改此状态的函数。我希望在更改状态后我将使用新状态重新获取。但这并没有发生。我在更改状态上添加 UseEffect 并在refetch()
状态更改后执行,但它会在更新状态之前获取以前的数据和主体。
所以在里面UseEffect
我看到主体已更改(使用新数据) - >调用重新获取 - > useQuery 调用()=> fetchCommissionsData(主体),但使用旧主体(不是新数据)
我正在使用:“react”:“^18.1.0”,“react-query”:“^3.39.1”
import React, { useState, useEffect } from 'react'
import { getCommissionsData, getSummary } from "../utils/apis";
import { queryKeys } from "../utils/constants";
import { useMutation, useQueryClient, useQuery } from "react-query";
//REST API
const fetchCommissionsData = async (request) => {
const response = await getCommissionsData(request)
return response
}
export function useCommissionsData() {
const [body, setBody] = useState(null)
const queryClient = useQueryClient()
const searchValues = queryClient.getQueryData(queryKeys.searchValues) …
Run Code Online (Sandbox Code Playgroud)