如何在按钮单击时手动调用 Redux-toolkit-query

And*_*man 11 react-redux redux-toolkit

我正在使用 Redux-toolkit-query 从服务器获取数据。现在我想在单击按钮时调用我的查询,而不是自动调用。我尝试了这个,但它不起作用。

const { data, refetch } = useGetBuisnessAreasQuery({
    enable: false,
    refetchOnWindowFocus: false,
    manual: true,
    refetchOnReconnect: false,
  });
Run Code Online (Sandbox Code Playgroud)

Ras*_*mon 19

您必须使用惰性查询挂钩:

const [ trigger, { data } ] = api.endpoints.getBuisnessAreas.useLazyQuery()

const onClick = () => {
  trigger()
}
Run Code Online (Sandbox Code Playgroud)


nov*_*uru 9

这就是我所做的,它只是更干净:

feature/service.ts

export const authenticationApi = createApi({

    reducerPath: 'myApi',
    baseQuery: fetchBaseQuery({ baseUrl: baseUrl }),
    endpoints: builder => ({
        attemptLogin: builder.query({
            query: (credentials) => ({
                url: '/',
                body: JSON.stringify(body)
            })
        })
    })
})

export const { useLazyAttemptLoginQuery } = authenticationApi
Run Code Online (Sandbox Code Playgroud)

并使用它:

const [getAuthenticated, { data, isLoading, error }] = useLazyAttemptLoginQuery()
Run Code Online (Sandbox Code Playgroud)