当我们在选择器内部时,为了不违反钩子规则,我们可以使用RTK查询端点,如下所示:
1)使用查询
const data = datsApi.endpoints.getData.useQuery(someProps)
2)启动
const data = await dispatch(datsApi.endpoints.getData.initiate(someProps)) const { data } = data
但是它们之间的区别是什么,什么时候使用每个示例更好
nvbavucw1#
initiate()是Redux async形实转换程序,它使用该缓存键参数触发为该端点提取数据。useQuery挂接会在组件挂载或您更改挂接该高速缓存键参数时根据需要自动调度该thunk,并且还包含一个useSelector调用,用于检索组件的缓存条目的数据。95%的情况下,useQuery钩子就是你所需要的全部。只有在必须触发组件外部的请求或在其他命令性逻辑中触发请求时,才真正需要initiate()形实转换。
initiate()
useQuery
useSelector
1条答案
按热度按时间nvbavucw1#
initiate()
是Redux async形实转换程序,它使用该缓存键参数触发为该端点提取数据。useQuery
挂接会在组件挂载或您更改挂接该高速缓存键参数时根据需要自动调度该thunk,并且还包含一个useSelector
调用,用于检索组件的缓存条目的数据。95%的情况下,
useQuery
钩子就是你所需要的全部。只有在必须触发组件外部的请求或在其他命令性逻辑中触发请求时,才真正需要
initiate()
形实转换。