如何在 RTKQuery 中使用 await 获取请求?

我试过了

  • initiate - 但是这个结果是从以前的结果中检索出来的。
  • mutate - 但我认为这是不规则的。

有什么方法可以将 await 用于正常的获取请求?

相关问题:

具体来说,我想做以下事情:

useEffect(() => {
  someRTKQuerysGetMethod()
    .then(data => setValuesToForm(data))
}, [])

但是,我从 phry 收到的评论可能已经解决了这个问题。

  • 我更新到 v1.7
  • 使用“useLazyQuery”和 unwrap()

    
    const [getPokemon] = useLazyGetPokemonQuery()

useEffect(() => {
getPokemon({...})
.unwrap()
.then(data => setValuesToForm(data))
}, [])



非常感谢...!!
stack overflow How to use await for get request in RTKQuery?
原文答案

答案:

作者头像

您可以将 useLazyQuery 钩子与 unwrap 方法一起使用。

// Get the trigger
const [getPokemon] = useLazyGetPokemonQuery();

// Then you can call with await
await getPokemon().unwrap();

// Or with standard promise
getPokemon()
  .unwrap()
  .then((fulfilled) => console.log(fulfilled))
  .catch((rejected) => console.error(rejected));