2016-03-01 69 views
1

我尝试在Chart组件上产生addColumnremoveColumn突变。单个对象上的多个突变

但是,当我打电话

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 
     } 
    ` 
    }; 
} 

回答

2

我想你拿到代码中的错字。看起来这两个突变都称为addChartColumn突变,这将解释期望删除图表列有效负载的错误。