如何编写outputFields
, getFatQuery
,getConfigs
用于创建新项目和更新项目列表
请看gist或live
问题是
getFatQuery() {
return Relay.QL`
???
`;
}
getConfigs() {
return [???];
}
outputFields: {
???
},
您的outputFields
架构中的 GraphQL 类型CreateActivityPayload
将由您的 schema.js 文件生成。突变类似于常规查询,但有副作用。在outputFields
你决定什么是可查询的。由于您的商店是您的应用程序中唯一可以因这种突变而改变的东西,我们可以从它开始。
outputFields: {
store: {
type: storeType,
resolve: () => store,
},
}
胖查询对这些输出字段进行操作。在这里,您告诉 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