2017-04-12 30 views
12

Çoklu Sorgular: Bu sadece birine ilişkin verileri alacakApollo Tepki - Make Şöyle bir sorgu dosyasına sahip

import React, {Component} from 'react' 
import queries from './queries' 

class Test extends Component { 
... 
} 

export default graphql(queries.getSubjects)(graphql(queries.getApps)(Test)); 

: o zaman benim Tepki bileşene bu dosyayı içe

import {gql} from 'react-apollo'; 

const queries = { 
    getApps: gql` 
    { 
     apps { 
     id 
     name 
     } 
    } 
    `, 
    getSubjects: gql` 
    { 
     subjects { 
     id 
     name 
     } 
    } 
    ` 
}; 

export default queries; 

sorguları (getApps) ve her ikisi de değil. Ben teker teker yaparsanız böyle görünecek biçimde:

export default graphql(queries.getSubjects)(Test); 

o zaman çalışır ama benim diğer sorgu yok. Evet, ayrı ayrı test ettim ve çalışıyorlar. Her iki sorgunun props.data'mda görünmesini nasıl sağlayabilirim?

cevap

15

Tercih ettiğim yol apollo istemcisinin (docu) compose işlevselliğini kullanmaktır.

DÜZENLEME: Birden fazla sorgunuz varsa bunları adlandırmalısınız. senin durumunda Yani

, bu gibi görünebilir:

import React, {Component} from 'react' 
 
import queries from './queries' 
 
import { compose } from 'react-apollo'; 
 

 
class Test extends Component { 
 
... 
 

 
    render() { 
 
    ... 
 
    
 
    console.log(this.props.subjectsQuery, this.props.appsQuery); // should show both 
 
    
 
    ... 
 
    } 
 
} 
 

 
export default compose(
 
    graphql(queries.getSubjects, { 
 
     name: "subjectsQuery" 
 
    }), 
 
    graphql(queries.getApps, { 
 
     name: "appsQuery" 
 
    }), 
 
)(Test);

+0

ben tam olarak bu boşuna :( – user2465134

+0

Strange, sen 'console.log (this.props denedin mi vermedi render fonksiyonunda? –

+0

Evet bunu denedim ve sadece – user2465134

İlgili konular