使用 useMutation 重试(反应查询)

Alf*_*x92 7 reactjs react-query

当react-query中突变失败时,如何重试?\n如果有错误,我想重试突变3次。

\n

我读过坦纳提到的这篇文章you\xe2\x80\x99ll have to build your own promise retry wrapper.,但是,我该怎么做呢?

\n

我的职能是:

\n
const [accessSelectPage, accessSelectPageInfo] = useMutation(\n    () =>\n      axios.post(\n        POST_ACCESS_SELECT_PAGE_EP(token ?? \'\'),\n        {},\n        {\n          headers: { \'X-Campaign-ID\': campaignID }\n        }\n      ),\n    {\n      onSuccess: (responseOnSuccess) => {\n        console.log(\'accessSelectPage\', responseOnSuccess)\n      },\n      onError: (error) => {\n        console.log(\'accessSelectPage error\', error)\n      }\n    }\n  )\n
Run Code Online (Sandbox Code Playgroud)\n

注意:是的,我知道 v3 有一个“重试”选项,但我正在使用 v2,并且由于多种原因更新反应查询不可行。

\n

Med*_*uly 7

ReactQuery.v3 支持重试

  const [accessSelectPage, accessSelectPageInfo] = useMutation(
    () =>
      axios.post(
        POST_ACCESS_SELECT_PAGE_EP(token ?? ''),
        {},
        {
          headers: { 'X-Campaign-ID': campaignID }
        }
      ),
    {
      onSuccess: (responseOnSuccess) => {
        console.log('accessSelectPage', responseOnSuccess)
      },
      onError: (error) => {
        console.log('accessSelectPage error', error)
      }
    },
    {
      retry: 3
    }
  )
Run Code Online (Sandbox Code Playgroud)

对于ReactQuery.v2建议使用,因为根据源代码,axios-retry v2似乎不支持重试