2017-04-12 16 views
12

मैं एक प्रश्नों फ़ाइल है कि इस तरह दिखता है:प्रतिक्रिया अपोलो - अनेक प्रश्नों

import {gql} from 'react-apollo'; 

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

export default queries; 

मैं तो मेरे प्रतिक्रिया घटक को इस फ़ाइल को आयात:

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

class Test extends Component { 
... 
} 

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

यह केवल एक का डेटा दिखाई देगा प्रश्नों (getApps) और दोनों नहीं। तो

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

यह काम करता है लेकिन मैं अपने अन्य प्रश्न नहीं है: यदि मैं एक समय में एक ऐसा इतना है कि यह इस तरह दिखता है। हां, मैंने अलग-अलग दोनों का परीक्षण किया है और वे काम करते हैं। मैं इसे कैसे प्राप्त करूं ताकि दोनों प्रश्न मेरे props.data में दिखाई दें?

उत्तर

15

मेरा पसंदीदा तरीका अपोलो क्लाइंट (docu) की compose कार्यक्षमता का उपयोग करना है।

संपादित करें: यदि आपके पास एक से अधिक प्रश्न हैं तो आपको उनका नाम देना चाहिए।

अपने मामले में

इसलिए, यह ऐसा दिखाई दे सकता:

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

मैं बिल्कुल इस कोई लाभ नहीं हुआ :( – user2465134

+0

अजीब करने के लिए, आप का प्रयास किया था कि 'console.log (this.props) 'रेंडर फ़ंक्शन में? –

+0

हाँ मैंने कोशिश की और केवल उन गुणों में से एक देखा जिन्हें मैं – user2465134

संबंधित मुद्दे