Yeni bir projede Relay ve GraphQL kullanıyoruz. bileşenlerin hiçbiri şu anda RANGE_ADD belirtilen aralıkta (viewer { campaigns }
), Röle akıllıca hariç tutar için sorguluyorsunuz beriBir model oluşturan bir GraphQL/Relay mutasyonunda, model kimliğini geri almanın bir yolu var mı?
export default class AddCampaignMutation extends Relay.Mutation {
getMutation() {
return Relay.QL`mutation { addCampaign }`;
}
getVariables() {
return {
type: this.props.campaignType
};
}
getFatQuery() {
return Relay.QL`
fragment on AddCampaignPayload {
campaignEdge
viewer
}
`;
}
getConfigs() {
return [{
type: 'RANGE_ADD',
parentName: 'viewer',
parentID: this.props.viewer.id,
connectionName: 'campaigns',
edgeName: 'campaignEdge',
rangeBehaviors: {
'': 'append',
},
}];
}
static fragments = {
viewer:() => Relay.QL`
fragment on User {
id
}
`,
};
}
Ancak:
Biz DB yeni bir model oluşturan bir Röle mutasyonu var Bu sorgu AddCampaignPayload
'dan.
Bu bir konsol uyarı ile sonuçlanır: Gerçekten bunu müşteri gezinmek, böylece yeni oluşturulan modelin kimliği geri almak istiyor
Warning: writeRelayUpdatePayload(): Expected response payload to include the newly created edge `campaignEdge` and its `node` field. Did you forget to update the `RANGE_ADD` mutation config?
. Örneğin, yeni campaignEdge
'u geri almak istemciyi /campaigns/${campaignEdge.node.id}
adresine göndermek istiyorum.
Bu kenarı almak için Röle'ye söyleme yolu var mı? Bu mutasyonu doğru şekilde yapılandırdım mı?
Niçin sadece yükte değil mi? –
@ChrisMartin Relay, yükü kontrol eder. Relay'in nasıl kontrol edileceğini bulmalıydım. – colllin