Relay如何编写outputFields,getFatQuery,getConfigs来创建新Item

时间:2015-11-10 19:54:52

标签: graphql relayjs

如何撰写outputFieldsgetFatQuerygetConfigs以创建新项目和更新项目列表
请查看gistlive

问题是

  getFatQuery() {
    return Relay.QL`
      ???
    `;
  }

  getConfigs() {
    return [???];
  }
  outputFields: {
    ???
  },

1 个答案:

答案 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