Я пытаюсь реализовать вход в систему реагировать на родной, используя apollo. В реагирующем собственном приложении
const SIGN_IN = gql`
mutation($username: String!, $password: String!) {
signin(password: $password, username: $username) {
user {
username
}
token
}
}
`;
// код сокращен.
function LoginScreen() {
const [signIn, { loading, error }] = useMutation(SIGN_IN, {
onCompleted({ data }) {
if (loading) console.log("Loading.....");
console.log("Printing data");
console.log(data.signin.token);
}
});
}
Бэкэнд-сервер работает хорошо. Но я получил сообщение об ошибке в журнале консоли:
[Unhandled promise rejection: TypeError: Cannot read property 'signin' of undefined]
Stack trace:
screens/LogInScreen.js:36:6 in useMutation$argument_1.onCompleted
node_modules/@apollo/react-hooks/lib/react-hooks.cjs.js:635:25 in callOncomplete
данные не определены. Итак, я попытался { data && console.log(data.signin.token) }
Но он ничего не печатает. Я прочитал, что do c говорит "обратный вызов onCompleted для useMutation, который будет вызван после завершения мутации с возвращаемым значением."
Как я могу отладить это? что мне не хватает? Любые идеи? Спасибо!