リレーを介してプレーン配列でミューテーションを行う方法を理解するのに苦労しています。
投稿に新しいタグを追加しようとしています。サーバー側で正常に追加された後、クライアント側で更新されません。
新しいタグを表示するには、手動でリロードする必要があります。と の両方を試しましREQUIRED_CHILDREN
たthis.props.relay.forceFetch()
が、役に立ちませんでした。
また、投稿を試みFIELDS_CHANGE
ました。
GraphQL スキーマ:
Post {
id: ID!
text: String!
tags: [Tag!]!
}
Tag {
id: ID!
name: String!
}
AddTagToPostMutation:
static fragments = {
post: () => Relay.QL`
fragment on Post {
id
tags
}
`,
}
getMutation() {
return Relay.QL`mutation { addTagToPost }`;
}
getVariables() {
return {
name: this.props.tag.name,
};
}
getFatQuery() {
return Relay.QL`
fragment on AddTagToPostMutationPayload {
tag {
id
name
}
post {
id
tags
}
}
`;
}
getConfigs() {
return [{
type: 'REQUIRED_CHILDREN',
children: [Relay.QL`
fragment on AddTagToPostMutationPayload {
tag {
id
name
}
post {
id
tags
}
}
`],
}];
}
getOptimisticResponse() {
return {
tag: {
name: this.props.tag.name,
},
post: {
id: this.props.post.id,
},
};
}