0

使用带有 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),
    })
  }
}
4

0 回答 0