Ошибка проверки в apollo graphql react-native - PullRequest
1 голос
/ 28 мая 2020

Я получаю [GraphQL error]: Message: Validation failed for the field [login]., Location: [object Object], Path: login и не могу понять, откуда взялась проблема. Я зарегистрировал учетные данные, и они не равны нулю.

Мутация также хорошо работает на игровой площадке graphql, и ошибка не совсем описательная, поэтому я не могу понять, что именно не так. Мутация также хорошо работает на игровой площадке graphql, и ошибка не совсем описательная, поэтому я не могу понять, что именно не так.

Вот код

const Login = () => {
  const [credentials, setCredentials] = useState({
    email: null,
    password: null,
    user: null,
  });

  console.log(credentials);

  const updateInput = (field, text) => {
    setCredentials({ ...credentials, [field]: text });
  };

  const LOGIN = gql`
    mutation Login($email: String!, $password: String!, $user: String!) {
      login(email: $email, password: $password, user: $user) {
        token
      }
    }
  `;
  const [login, { data }] = useMutation(LOGIN);


  return (
    <>
      <View style={styles.container}>
        <Header />
        <View>
          <Text>Login</Text>
          <View>
            <TextInput
              placeholder="Email"
              onChangeText={(text) => {
                updateInput("email", text);
              }}
            />
            <TextInput
              placeholder="Password"
              onChangeText={(text) => {
                updateInput("password", text);
              }}
            />
            <View>
              <Picker
                selectedValue={credentials.user}
                onValueChange={(itemValue, itemIndex) =>
                  updateInput("user", itemValue)
                }
              >
                <Picker.Item label="Select user type" />
                <Picker.Item label="Patient" value="patient" />
                <Picker.Item label="Doctor" value="doctor" />
              </Picker>
            </View>
            <TouchableOpacity
              onPress={() => {
                return login({
                  variables: {
                    user: credentials.user,
                    email: credentials.email,
                    password: credentials.password,
                  },
                })
                  .then((data) => console.log(data))
                  .catch((error) => console.log(error));
              }}
            >
              <Text>Login</Text>
            </TouchableOpacity>
          </View>
        </View>
      </View>
    </>
  );
};

export default Login;
...