Как я могу обработать ошибки для 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>
)}
[...]