Я использую подписку GraphQL с помощью Prisma (http://prismagraphql.com/), и реагирую + реагировать-аполлон.
В приведенном выше примеречисло '3' не было прослушано subscribeToMore(
. Следовательно, запрос chatsQueryConnection
не был обновлен.
Номер '3' был успешно создан, поскольку этот номер появляется после обновления страницы.
subscribeToMore
Listner:
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