Чтение данных с сервера в распознавателе Apollo - PullRequest
0 голосов
/ 09 декабря 2018

Итак, у меня есть распознаватель для управления моим локальным состоянием во время аутентификации, который обновляет текущего пользователя.

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: есть ли хоть какой-нибудь хороший способ обновить локальное состояние сразу после перехода на сервер?

...