Ошибка useMutation преобразуется в страницу «Необработанный отказ (ошибка)». - PullRequest
0 голосов
/ 21 февраля 2020

Как я могу обработать ошибки для useMutation, чтобы страница не превратилась в неприятную Unhandled Rejection (Error)?

Хотя этот пост здесь описывает мою проблему, я все еще не мог ' Т решить это. В посте особенно упоминается. Instead of having to write the above boilerplate yourself, you can just use the provided result object. Я сделал это с помощью:

const [signUp, { loading: mutationLoading, error: mutationError } [...]

Однако мое приложение React всегда переключается на экран «Необработанный отказ (ошибка): ошибка GraphQL» при возникновении ошибки. Похоже, что подобное решение работает в официальном 1017 * - но не для меня.

function SignUp() {
  // Declare a new state variable, which we'll call "count"
  const [login, setLogin] = useState(true);
  const [username, setUsername] = useState("");
  const [email, setEmail] = useState("");
  const [password, setPassword] = useState("");
  const [name, setName] = useState("");
  const [
    signUp,
    { loading: mutationLoading, error: mutationError }
  ] = useMutation(SIGNUP_MUTATION, {
    onCompleted(data) {
      const { token } = login ? data.tokenAuth : data.createUser;
      localStorage.setItem(AUTH_TOKEN, token);
      console.log(token);
      // this.props.history.push(`/`);
    }
  });

  return (
    <div>
      {mutationLoading && <p>Loading...</p>}
      {mutationError && (
        <p>
          Some error occured :(
          {console.log(mutationError)}
          {mutationError.graphQLErrors.map(({ message }, i) => (
            <span key={i}>{message}</span>
          ))}
        </p>
      )}
[...]
...