2015-10-30 39 views
8

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ı?

+0

Niçin sadece yükte değil mi? –

+0

@ChrisMartin Relay, yükü kontrol eder. Relay'in nasıl kontrol edileceğini bulmalıydım. – colllin

cevap