如何撰写outputFields
,getFatQuery
,getConfigs
以创建新项目和更新项目列表
请查看gist或live
问题是
getFatQuery() {
return Relay.QL`
???
`;
}
getConfigs() {
return [???];
}
outputFields: {
???
},
答案 0 :(得分:2)
架构中的outputFields
构成将从schema.js文件生成的GraphQL类型CreateActivityPayload
。突变就像常规查询,但有副作用。在outputFields
中,您可以决定什么是可查询的。由于您的商店是您应用中唯一可以因此突变而发生变化的商店,因此我们可以从此开始。
outputFields: {
store: {
type: storeType,
resolve: () => store,
},
}
fat查询对这些输出字段进行操作。在这里,您告诉Relay由于这种突变可能会发生什么变化。添加活动可能会更改以下字段:
getFatQuery() {
return Relay.QL`
fragment on CreateActivityPayload @relay(pattern: true) {
store {
activities
}
}
`;
}
最后,配置告诉Relay在获取查询时如何处理,或者甚至根本不需要查询。在这里,您希望在创建新活动后更新字段。使用FIELDS_CHANGE
配置告诉Relay更新您的商店。
getConfigs() {
return [{
type: 'FIELDS_CHANGE',
fieldsIDs: {
store: this.props.storeId,
},
}];
}
查看更多:https://facebook.github.io/relay/docs/guides-mutations.html