0
イベントがPasswordUpdated
チャンネルに公開されたときに以前に取得したユーザーのパスワードを更新しようとしています。これは私がこれまで試してみました何で、GraphQLサブスクリプション:サブスクリプションのイベントに基づいてオブジェクトを更新する方法
this.apollo.subscribe({
query: this.passwordUpdatedSubscription
}).subscribe(({passwordUpdated}:any) => {
this.userDataQuery.updateQuery((previousResult) => {
previousResult.getUsers.filter(user => user.name === passwordUpdated.name).forEach(user => user.password = passwordUpdated.password);
});
});
はしかし、私はちょうどpreviousResult
は不変であるコンソールにエラーから分かりました。 previousResult
でパスワードを更新しようとしたとき、プロパティはwritable: false
です。どうすれば解決できますか?
'SubscribeToMore'機能は、apollo-reactクライアントでのみ使用できます。残念ながら、それは角度のあるクライアントでは利用できません。私はそのページからupdateQueryをチェックしました。彼らは 'newComments'配列を再作成し、それに新しいコメントをプッシュするように見えます。これは私が避けようとしているものです。以前の結果から新しい結果を再作成するのではなく、以前の結果を変更する方法を探しています。 –
あなたは正しいです。私は 'SubscribeToMore'が見つかりませんでした。あなたが角度のためのapolloクライアントがあなたのために 'dataIdFromObject' [docu](http://dev.apollodata.com/angular2/cache-updates.html#dataIdFromObject)でバックグラウンドでそれを行う可能性があるかどうかをチェックすることができます。 )。 youre応答にユーザーのIDが含まれている場合は、apolloストアを更新する必要があります。 –