【发布时间】:2017-09-19 15:58:33
【问题描述】:
我似乎无法理解我在客户端应用程序上遇到的错误。我正在订阅 graphql 订阅,并且能够检索更新,但我无法将更改推送到绑定到视图的名为“models:ModelClass[]”的打字稿数组。
我有什么遗漏或做错了吗?
models.component.ts
this.apollo.subscribe({
query: gql`
subscription {
newModelCreated{
_id
name
type
train_status
deploy_status
data_path
description
created_at
updated_at
}
}
`
}).subscribe((data) => {
console.log("CREATED: " + JSON.stringify(data.newModelCreated));
console.log(data.newModelCreated);
var temp:ModelClass = data.newModelCreated;
this.models.push(temp);
});
model-class.ts
export interface ModelClass {
_id: string;
name: string;
type: string;
parameters: {
alpha: number;
};
train_status: string;
deploy_status: string;
test_accuracy: string;
created_at: number;
updated_at: number;
}
【问题讨论】:
-
顺便说一句,我发现两个对象不兼容!
-
models的类型是什么? -
您可以通过
Object.isExtensible(this.models)进行调试。如果返回 true,则this.models被冻结,您不能再向其中添加任何元素。可以添加日志的详细信息吗? -
@HardikModha 你不是说“如果返回 false 则
this.models被冻结”? -
@Robert Bernstein 是的,你是对的。如果它返回 false 那么它是不可扩展的。大概是因为匆忙而错过了。感谢您指出。 :)
标签: javascript typescript apollo-client graphql-subscriptions