私はリレーを介してプレーンアレイ上で突然変異を行う方法を理解するのに苦労しています。プレーンアレイ上のリレー変異は機能していません
投稿に新しいタグを追加しようとしています。 サーバー側で正常に追加された後、クライアント側で更新されません。
新しいタグを表示するには、手動でリロードする必要があります。 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,
},
};
}
私もFIELDS_CHANGEを試しましたが、どちらか動作しませんでした。 – Joon
@Joon突然変異要求からRelayに返されるサーバーを確認できますか(React Dev Toolsを使用するか、[Network]タブをクロームするだけです)?最初にタグを追加してから削除するような、楽観的な反応「blink」が最初に表示されますか? – freiksenet