Chat
を使用して、2 つのクエリと 1 つのミューテーションでコンポーネントをラップしようとしていますcompose
。
ただし、コンソールに次のエラーがまだ表示されます。
Uncaught Error:
react-apollo
HOC ごとのクエリ、サブスクリプション、またはミューテーションのみをサポートします。[object Object]
クエリは 2 つ、サブスクリプションは 0、ミューテーションは 0 でした。' ' を使用compose
して、複数の操作タイプをコンポーネントに結合できます
これが私のクエリとエクスポートステートメントです:
// this query seems to cause the issue
const findConversations = gql`
query allConversations($customerId: ID!) {
allConversations(filter: {
customerId: $customerId
})
} {
id
}
`
const createMessage = gql`
mutation createMessage($text: String!, $conversationId: ID!) {
createMessage(text: $text, conversationId: $conversationId) {
id
text
}
}
`
const allMessages = gql`
query allMessages($conversationId: ID!) {
allMessages(filter: {
conversation: {
id: $conversationId
}
})
{
text
createdAt
}
}
`
export default compose(
graphql(findConversations, {name: 'findConversationsQuery'}),
graphql(allMessages, {name: 'allMessagesQuery'}),
graphql(createMessage, {name : 'createMessageMutation'})
)(Chat)
どうやら、問題はfindConversations
クエリにあります。コメントアウトすると、エラーが発生せず、コンポーネントが適切に読み込まれます。
// this works
export default compose(
// graphql(findConversations, {name: 'findConversationsQuery'}),
graphql(allMessages, {name: 'allMessagesQuery'}),
graphql(createMessage, {name : 'createMessageMutation'})
)(Chat)
何が欠けているのか誰か教えてもらえますか?
ちなみに、allMessagesQuery
関連する場合に備えて、 にもサブスクリプションを設定しています。
componentDidMount() {
this.newMessageSubscription = this.props.allMessagesQuery.subscribeToMore({
document: gql`
subscription {
createMessage(filter: {
conversation: {
id: "${this.props.conversationId}"
}
}) {
text
createdAt
}
}
`,
updateQuery: (previousState, {subscriptionData}) => {
...
},
onError: (err) => console.error(err),
})
}