получить данные clientState из запроса ApolloClient для использования в операции. setContext реагировать apollo graphql - PullRequest
0 голосов
/ 25 марта 2020

React - Apollo - GraphQl Привет всем, код:

const client = new ApolloClient({
  uri: "http://someurl.com/graphqlserverendpoint/",
  fetchOptions:{
    credentials : "include" 
  },
  request : operation => { 
    // i want to access needed data from here
  const neededDataFromClientState = "QueryDataFromHere!!!"
  const token = localStorage.getItem('authToken') || "" ; 
    operation.setContext({
      headers: {
        Authorization : `JWT ${token}` 
      }
    })

  },
  clientState : {  
    defaults : { 
      isLoggedIn : !!localStorage.getItem('authToken') ,  
      neededData : "the data I want get"

    }
  }
});

Я хочу получить доступ к данным с именем requiredData из запроса Операция

Любое тело хочет мне помочь? Спасибо ..

1 Ответ

0 голосов
/ 25 марта 2020

Вы не предоставили импорт - ваш ApolloClient из проекта apollo-boost, и поэтому его параметры конфигурации отличаются от стандартных, импортированных из apollo-client.

Устаревшие

Проект Apollo Boost теперь снят с производства, поскольку Apollo Client 3.0 обеспечивает аналогичную простую настройку. Мы рекомендуем удалить все apollo-boost зависимости и при необходимости изменить ваш ApolloClient конструктор.

Apollo boost был проектом 'easy starter', предназначенным для скрытия некоторой сложности конфигурации ([[ еще несколько строк] кеш и ссылки).

Решение

Используйте обычные, широко известные методы аутентификации, описанные в docs , и множество учебных пособий, таких как this

localStorage используется для сохранения пользователя на странице / в браузере refre sh.

Другие данные могут передаваться между ссылками по контексту - данные могут быть хранится полностью как token в в этом примере . Другая (следующая в цепочке, порядок имеет значение) ссылка [-s] может считывать данные из контекста, используя operation.getContext().token вместо localStorage.

...