2017-07-16 6 views
0

こんにちは、私は配列に要素を挿入しようとすると、次のエラーを取得しています:アンギュラ4 - 追加することはできません/削除密閉された配列要素が

は密閉された配列の要素を削除/

を追加することはできません私が手アポロ角を使用したデータ(GraphQLクライアント)。データはちょうど良いretrivedされています。ここで

は私のコードです: main.htmlと:

<div class="chats"> 
    <chat *ngFor="let chat of activeChats; let i = index" [chat]="activeChats[i]" (close)="removeChat(i)"></chat> 
</div> 

チャットコンポーネント:

@Component({ 
    selector: 'chat', 
    templateUrl: './chat.component.html' 
}) 
export class ChatComponent { 

    @Input() chat : Chat 

    constructor(
     private chatService : ChatService 
) {} 

    getNextPage(){ 
    this.chatService.getMessages(this.chat.id, this.chat.messages[0].sentTime).subscribe(msgs=>{ 
     // The error thrown here 
     this.chat.messages.splice(0,0,...(msgs || [])); 
    }) 
    } 
} 

チャットデータサンプル構造:あなたのサービスで

{ 
    id : "234234234", 
    messages : [ 
    {id:"2341112", sentTime:"2017-07-05T17:14:07.396Z"}, 
    {id:"2341342", sentTime:"2017-06-05T17:14:07.396Z"} 
    ] 
} 
+0

サービスからデータを取得してクリアしますか?サンプルのjsonファイルも更新してください – Aravind

+0

graphqlを呼び出すサービスからデータを取得します。 –

答えて

2

あなたが受け取るとき応答:

代わりに:

this.messages = result.data.nodes; 

使用:

this.messages = [...result.data.nodes]; 
2

問題はアポロ-clientパッケージとあった、私は私のGraphQLサーバーと通信し、データをフェッチするために使用しています。

apollo-clientが自動的にすべてのサーバー応答を凍結するようです。 githubレポにrelaventの問題をオープンしました: https://github.com/apollographql/apollo-client/issues/1909

関連する問題