当条件发生变化时如何调用Rtk Query Hook?

Red*_*per 5 reactjs react-redux react-hooks redux-toolkit rtk-query

我使用 createApi 创建了端点:

export const postsApi = createApi({
  reducerPath: 'postsApi',
  baseQuery: fetchBaseQuery({baseUrl: 'https://jsonplaceholder.typicode.com/'}),
  tagTypes: ['Post'],
  endpoints: builder => ({
    getPosts: builder.query<Post[], void>({
      query: () => '/posts',
      providesTags: ['Post'],
    }),
   }), 
});

export const {useGetPostsQuery} = postsApi;
Run Code Online (Sandbox Code Playgroud)

如何useGetPostsQuery()仅在按下按钮时而不是在安装组件时使用组件中的钩子?

我尝试将其添加到组件中并且它有效,但我不确定这是否是最佳实践:

const [click, setClick] = useState<boolean>(true);
const {data, error, isLoading} = useGetPostsQuery(undefined, {skip: click});
Run Code Online (Sandbox Code Playgroud)

reb*_*san 10

与skip一起使用它的方式是有效的。另一种方法是使用 useLazyQuery 挂钩,该挂钩仅在触发时调用。

const [trigger, result] = useLazyGetPostsQuery();
const handleClick = () => {
    trigger();
    console.log(result.data);
};
Run Code Online (Sandbox Code Playgroud)

请参阅 RTK-Query 创建者的答案/sf/answers/4836929121/