Это моя функция (класса реагирующего компонента), которая вызывает мутацию apollo / graphQL (doSomething()
).
example.js
example (id) {
const { elementID, doSomething } = this.props
return doSomething({
variables: { id },
update: (proxy, { data: { getData } }) => {
const data = proxy.readQuery({
query: getDataQuery,
variables: { elementID }
})
// ...do something...
proxy.writeQuery({
query: getDataQuery,
variables: { elementID },
data
})
}
})
}
Мне нужно получить функцию обновления в отдельном файле, но теперь я потерял контекст для elementID
:
Как видите, вызов мутации становится очень читабельным, когда я помещаю функцию обновления в другой файл. Но elementID
больше не определяется.
example.js
import { update } from './update.js'
example (id) {
const { elementID, doSomething } = this.props
return doSomething({
variables: { id },
update: update
}
update.js
export const update = (proxy, { data: { getData } }) => {
const data = proxy.readQuery({
query: getDataQuery,
variables: { elementID } // <-- not defined
})
// ...do something...
proxy.writeQuery({
query: getDataQuery,
variables: { elementID }, // <-- not defined
data
})
}