使用带有 graphql 订阅的 apollo 客户端,我在示例中跟随,但我没有看到来自订阅事件的 updateQuery 更新我的属性。updateQuery 的返回值是否应该自动处理 - 还是我应该自己将其保存到商店?
componentWillReceiveProps(newProps) {
if (!newProps.data.loading && !this.subscription) {
this.subscription = newProps.data.subscribeToMore({
document: getMessages,
variables: { id: 'foo'},
updateQuery: (previousState, {subscriptionData}) => {
const newEntry = subscriptionData.data.createMessage;
return {
Conversation: {
messages: [
...previousState.Conversation.messages,
{
...newEntry
}
]
}
}
},
onError: (err) => console.error(err),
})
}
}