首页 > 解决方案 > 使用 GraphQL 在 Strapi.io 应用程序中注册用户

问题描述

我正在连接到我的应用程序并使用 graphql 进行查询工作正常(我正在使用 Apollo 客户端)。在strapi开发graphql游乐场上,我可以成功注册一个用户。但是,当我尝试在反应中实现相同的突变时,我收到 400 错误。

这是我的钩子:

//useRegister.js
import React, {useState} from 'react';
import {gql, useMutation} from "@apollo/client";

const REGISTER=gql`
    mutation Register($input: UsersPermissionsRegisterInput!) {
      register(input: $input) {
        jwt
        user {
          id
          username
          email
          role
        }
      }
    }
`

const useRegister = () => {
    const [callMutation, {loading, data, error}] = useMutation(REGISTER);

    const register = async (email, password) => {
        const result = await callMutation({
            variables: {
                input: {
                    email,
                    password,
                    username: email
                }
            }
        });
        console.log('useRegister.register.result', result);
    }

    return [register, data, loading, error];
}

export default useRegister

这是我的表单中调用它的代码:

...
    const [register, response, loading, error] = useRegister();
...
useEffect(() => {
        if(response) {
            console.log('Register.useEffect.response', response);
            //saving user implemented here
        }
    }, [response])
...
const handleOnSubmit = async (e) => {
        e.preventDefault();
        try {
            await register(form.email, form.password);
        } catch (err) {
            console.log('err', err);
        }
    }

正在调用 try/catch 的 catch 部分。

标签: reactjsgraphqlmutation

解决方案


推荐阅读