2016-12-07 6 views
5

मेरे पास एक साधारण प्रतिक्रिया घटक है जो उपयोगकर्ता से पूछे जाने पर सर्वर से डेटा लोड करना होगा। समस्या यह है कि मुझे नहीं पता कि डायनामिक वेरिएबल स्पीकर यूआरएल कैसे स्थानांतरित करें और इसे घटक लोड स्थिति से पहले एक्सेस करें। निश्चित रूप से मैं इसे this.props.params से एक्सेस कर सकता हूं, लेकिन घटक लोड नहीं होता है और जब मैं ग्राफक्ल क्वेरी करता हूं तो मैं इसका उपयोग नहीं कर सकता। क्वेरी - QuerySpeaker ठीक काम कर रहा है जब मैं मैन्युअल रूप से यूआरएल चर सेट करता हूं।ग्राफक्ल, प्रतिक्रिया-अपोलो घटक को लोड करने के लिए वैरिएबल को स्थानांतरित करने के लिए कैसे करें

रूटर

<Route path="/speaker/:speakerUrl" component={SpeakerPage} /> 

घटक - SpeakerPage

import React from 'react'; 
import { graphql } from 'react-apollo'; 

import { QuerySpeaker } from '../redux/graphql/querys'; 

class SpeakerPage extends React.Component { 
    render() { 
     console.log(this.props); 
     return (
      <div className="ui container"> 
       <div className="ui grid"> 
        <div className="row"> 
         Hello 
        </div> 
       </div> 
      </div> 
     ) 
    } 
} 

export default graphql(QuerySpeaker, { 
    options: ({ url }) => ({ variables: { url } }) <- here is my problem, how can i set this url variable? 
})(SpeakerPage); 

उत्तर

16

react-apollodocumentation के आधार पर, तर्क options कार्य करने के लिए पारित कर दिया रंगमंच की सामग्री घटक के लिए पारित वस्तु है। जब react-router आपके घटक को प्रस्तुत करता है, तो यह इसे params को प्रोप के रूप में पास करता है। इसका मतलब है कि paramsoptions फ़ंक्शन पर पारित वस्तु की एक संपत्ति होनी चाहिए।

export default graphql(QuerySpeaker, { 
    options: (props) => ({ variables: { url: props.match.params.speakerUrl } }) 
})(SpeakerPage); 
+1

दस्तावेज़ों में यह बहुत स्पष्ट नहीं है कि इस उपयोग के मामले में देव में कितनी बार आती है। धन्यवाद! – mattdlockyer

+0

धन्यवाद पॉल। मैंने एक जैसी समस्या का समाधान किया था! मुझसे ऊपर हटो –

+0

सोचने में कि प्रतिक्रिया राउटर v4 में, आपको मैच प्रॉपर्टी का उपयोग करना चाहिए: props.match.params.speakerUrl – yonih

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

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