1

addColumnコンポーネントにとremoveColumnミューテーションを持たせようとしていChartます。

でも電話したら

Relay.Store.commitUpdate(new RemoveChartColumnMutation({
  chart: this.props.viewer.chart,
  column: this.props.viewer.chart.columns[0]
})

このエラーが発生します

"Fragment \"F2\" cannot be spread here as objects of type "AddChartColumnPayload\" can never be of type \"RemoveChartColumnPayload\"."

ここで何が間違っていますか?

export default Relay.createContainer(Home, {
  fragments: {
    viewer: () => Relay.QL`
      fragment on User {
        chart {
          columns
          ${AddChartColumnMutation.getFragment('chart')}
          ${RemoveChartColumnMutation.getFragment('chart')}
        }
      }`
  }
});

これらの突然変異で

class AddChartColumnMutation extends Relay.Mutation {
  getMutation() {
    return Relay.QL`mutation {addChartColumn}`;
  }
  getVariables() {
    return {
      id: this.props.chart.id,
      key: this.props.key,
      aggregation: this.props.aggregation
    };
  }
  getFatQuery() {
    return Relay.QL`
      fragment on AddChartColumnPayload {
        chart {
          columns
        }
      }
    `;
  }
  getConfigs() {
    return [{
      type: 'FIELDS_CHANGE',
      fieldIDs: {
        chart: this.props.chart.id
      }
    }];
  }
  static fragments = {
    chart: () => Relay.QL`
      fragment on Chart {
        id
        type
      }
    `
  };
}

class RemoveChartColumnMutation extends Relay.Mutation {
  getMutation() {
    return Relay.QL`mutation {addChartColumn}`;
  }
  getVariables() {
    return {
      chartId: this.props.chart.id,
      columnId: this.props.column.id
    };
  }
  getFatQuery() {
    return Relay.QL`
      fragment on RemoveChartColumnPayload {
        chart {
          columns
        }
      }
    `;
  }
  getConfigs() {
    return [{
      type: 'FIELDS_CHANGE',
      fieldIDs: {
        chart: this.props.chart.id
      }
    }];
  }
  static fragments = {
    chart: () => Relay.QL`
      fragment on Chart {
        id
        type
      }
    `
  };
}
4

1 に答える 1

2

コードにタイプミスがあるだけだと思います。両方のミューテーションがミューテーションを呼び出しているように見えaddChartColumnます。これは、チャート列の削除ペイロードを期待するエラーを説明しています。

于 2016-03-02T23:40:20.770 に答える