Эта проблема не имеет для меня никакого смысла ... Я добавляю автора в базу данных, используя мутацию, подобную этой:
this.props
.addAuthorMutation({
variables: {
name: this.state.name,
age: this.state.age
},
refetchQueries: [
{
query: getAuthorsQuery,
variables: {
awaitRefetchQueries: true
}
}
]
})
.then(() => this.submitBookAlso());
Тогда просто ...
submitBookAlso() {
console.log(this);
console.log(this.props);
}
По какой-то таинственной причине, когда я проверяю (this) в консоли, this.props.getAuthorsQuery.authors содержит моего добавленного автора, а (this.props) в консоли - нет.Новый автор успешно добавлен в раскрывающийся список в другом компоненте и находится в базе данных, но я не могу получить автора после мутации.Я хотел бы отфильтровать его ...
let author = this.props.getAuthorsQuery.authors.filter(
author => this.state.name === author.name
);
console.log(author);
... но это просто дает мне пустой массив.Что я хочу сделать, так это вызвать другую мутацию, когда она будет завершена (добавление книги в отдельную коллекцию базы данных с новым добавленным автором в качестве ее автора).
Я получаю тот же результат, не используя awaitRefetchQueries, итакже используя onCompleted вместо .then ().Это мои текущие зависимости:
"dependencies": {
"apollo-boost": "^0.1.16",
"graphql": "^14.0.2",
"react": "^16.5.2",
"react-apollo": "^2.2.4",
"react-dom": "^16.5.2",
"react-scripts": "2.0.3"
},
Спасибо!