Итак, у меня есть распознаватель для управления моим локальным состоянием во время аутентификации, который обновляет текущего пользователя.
updateCurrentUser: (_, { username, password }, { cache }) => {
const LOGIN = gql`
query Authenticate($username: String!, $password: String!){
authenticate(username: $username, password: $password) {
username
token
}
}`
const login = server.readQuery({ query: LOGIN, variables: {username: username, password: password} })
if (login === null) {
cache.writeQuery({
query: gql`
query GetLoginError {
loginError @client {
error
}
}`,
data: {
loginError: {
error: 'wrong loing data'
}
}
})
}
else {
const newData = {
currentUser: {
...login
}}
cache.writeQuery({ query: GET_CURRENT_USER, data: newData })
}
return null;
}
Очевидно, что 9-я строка неверна, но я не нашел никакого приемлемого способа выполнить вызов к серверу во время мутацииместное государство без каких-либо странных взломов.Каков будет правильный способ сделать это?
update: есть ли хоть какой-нибудь хороший способ обновить локальное состояние сразу после перехода на сервер?