Большая часть информации о клиентах Apollo и запросах GraphQL касается извлечения данных и немедленной визуализации чего-либо.
А как насчет общего случая использования, когда я хочу получать данные, скажем, для обновления состояния, в котором мне явно не нужно отображать JSX, я просто хочу запустить код Javascript.
Используйте следующий фрагмент кода в качестве примера
onRefChange (formValues) {
let { project, ref } = formValues
let projectFound = find(this.state.projects, (o) => { return o.id === project.value } )
let variables = {
slug: projectFound.slug, ref: parseInt(ref)
}
console.info('variables ready', variables)
return (
<Query query={RESOLVE_REF} variables={variables}>
{ ({ data, error }) => {
console.info('data response', data)
console.info('error response', error)
return data
}}
</Query>
)
}
Apollo заставляет меня использовать компонент Query
просто для выполнения запроса, даже когда я не хочу ничего визуализировать. Кроме того, эти console.info
никогда ничего не регистрируют, но текст с готовыми переменными появляется.
Я обнаружил, что документация довольно ясно описывает использование компонента Query
, но неясна для каждого параметра, который отличается. Я чувствую, что что-то упустил.
Я также обеспокоен тем, что Аполлон, похоже, не уважает разделение обязанностей, по-видимому, объединяя данные и представление в одну ответственность (как ясно с компонентом Query
), что в моем нынешнем понимании вполне глупо, но, скорее всего, я облажался.
Любое понимание приветствуется.