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

lai*_*Nao 12 react-redux rtk-query

我试过了

  • 启动- 但此结果是从先前的结果中检索的。
  • mutate - 但我认为这是不规则的。

有什么办法可以使用await来处理普通的get请求吗?

相关问题:


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

useEffect(() => {
  someRTKQuerysGetMethod()
    .then(data => setValuesToForm(data))
}, [])
Run Code Online (Sandbox Code Playgroud)

不过,我从 phry 收到的评论可能已经解决了问题。

  • 我更新到v1.7
  • 使用“useLazyQuery”和 unwrap()
const [getPokemon] = useLazyGetPokemonQuery()

useEffect(() => {
  getPokemon({...})
    .unwrap()
    .then(data => setValuesToForm(data))
}, [])
Run Code Online (Sandbox Code Playgroud)

非常感谢...!!

Lik*_*iko 11

您可以将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));
Run Code Online (Sandbox Code Playgroud)