1

如何编写outputFields, getFatQuery,getConfigs用于创建新项目和更新项目列表
请看gistlive

问题是

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

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

1 回答 1

2

您的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

于 2016-03-09T21:41:47.597 回答