0

在此处输入图像描述

我正在使用带有 Prisma 的 GraphQL 订阅(http://prismagraphql.com/)和 react + react-apollo。

在上面的示例中,数字“3”尚未被 监听subscribeToMore(。因此查询chatsQueryConnection尚未更新。

数字“3”已成功创建,因为该数字在页面刷新后出现。

subscribeToMore听众:

  componentDidMount() {
    this.props.chatsQueryConnection.subscribeToMore({
      document: CHAT_SUBSCRIPTION,
      updateQuery: (prev, { subscriptionData }) => {
        console.log('componentDidMountSub')
        if (!subscriptionData) {
          return prev
        }
        return Object.assign({}, prev, {
          chatsConnection: {
            __typename: 'ChatConnection',
            edges: [
              ...prev.chatsConnection.edges,
              subscriptionData.data.chat
            ]
          }
        })
      }
    })
  }

GrqphQL 订阅查询:

const CHAT_SUBSCRIPTION = gql `
  subscription {
    chat(where:{mutation_in: CREATED}) {
      node {
        id
        message
        author {
          name
          nameFile
        }
      }
    }
  }
`

完整代码在这里

Apollo 订阅文档

Prisma 订阅文档

4

0 回答 0