如果为常数,如何清除useMutation错误?

时间:2020-05-11 04:17:04

标签: reactjs apollo-client

如果在带有React钩子的功能组件中包含以下代码,那么如果为常数,如何清除useMutation错误?

$total = $query[0]->total; // 29

1 个答案:

答案 0 :(得分:0)

假设您将其用作组件的一部分,那么const将在下一次渲染时再次进行评估。因此,它不会在两次登录尝试之间持续存在,因此无需清理它。

例如我这样使用它,即使用户第一次登录时遇到错误,它仍然允许他们重试并成功:

const LoginPage: = ({doLogin}: LoginProps) => {
    const [login, { loading, error }] = useMutation<LoginResponse, LoginVariables>(
        LOGIN_MUTATION, { onCompleted: (response: LoginResponse) => doLogin(response) }
    )

  return <>
    // Render my login component
  </>
}

如果您打算覆盖当前渲染中的错误值,则只需分配一个新变量,然后使用该变量即可:

const [login, { error }] = useMutation<...>(...)

const overwrittenError = customizedErrorMessage(error)
const potentiallyIgnoredError = shouldErrorBeIgnored(error) && error

return <>
  <>Custom error: { overwrittenError }</>
  <>This error might be ignored: { potentiallyIgnoredError }</>
  <>Original error: { error }</>
</>