我正在尝试执行graphql查询,但我在客户端遇到网络错误。如果我在chrome中检查我的网络层,结果是正确的。但在我的角度组件中没有。
我的查询:
export const GetAllCorpoQuery = gql`
query getAllCorpo($status: Boolean) {
getAllCorpo(status: $status) {
id
}
}
`;
我的组件方法:
filter() {
const {nome, status} = this.entity
const variables = {
status
};
this.apollo.query<any>({query: GetAllCorpoQuery, variables, fetchPolicy: 'network-only'}).subscribe(({data}) => {
console.log(data);
this.corpos = data.getAllCorpo;
const nome = new MapColunaAtributo(this.colunas[0], 'nome');
const status = new MapColunaAtributo(this.colunas[1], 'status');
this.listPesquisa = [nome, status];
}
);
}
The error:
ERROR Error: Uncaught (in promise): Error: Network error: Error writing result to store for query:
query getAllCorpo($status: Boolean) {
getAllCorpo(status: $status) {
id
__typename
}
}
Cannot read property 'getAllCorpo' of undefined
Error: Network error: Error writing result to store for query:
query getAllCorpo($status: Boolean) {
getAllCorpo(status: $status) {
id
__typename
}
}
有人可以帮助我吗? 我使用角度4.3.0和
“apollo-angular”:“^ 1.0.1”,
“apollo-angular-link-http”:“^ 1.0.2”,
“apollo-cache-inmemory”:“^ 1.1.12”,
“apollo-client”:“^ 2.2.8”
答案 0 :(得分:0)
我相信您没有在订阅中进行正确的映射。在你的情况下试试这个:
this.apollo.query<any>({query: GetAllCorpoQuery, variables, fetchPolicy: 'network-only'}).subscribe(data => {
console.log(data);
this.corpos = data.getAllCorpo;
const nome = new MapColunaAtributo(this.colunas[0], 'nome');
const status = new MapColunaAtributo(this.colunas[1], 'status');
this.listPesquisa = [nome, status];
}
您的回复是不同的结构,然后在订阅中指定。
作为回应,你有这样的结构:
{
getAllCorpo: ...
}
但是在订阅中你试图像这样访问:
subscribe(({data}) => ...
我认为问题在那里。你必须这样使用:
subscribe(data => console.log(data.getAllCorpo));