2017-01-30 10 views
13

एक देशी प्रतिक्रिया परियोजना में मैं एक वस्तु बनाने रहा हूँ और उसके बाद नव निर्मित वस्तु के विवरण पृष्ठ पर पुनः निर्देशित स्क्रीन और मैं इस त्रुटि हो रही है:अपोलो क्लाइंट मुझे 'स्टोर में पहले से ही एक आईडी' की एक त्रुटि दे रहा है - इसका क्या अर्थ है?

संभव बिना क्रिया वादा अस्वीकृति (आईडी: 0): नेटवर्क त्रुटि: स्टोर त्रुटि: एप्लिकेशन ने किसी ऑब्जेक्ट को बिना किसी आईडी के लिखने का प्रयास किया लेकिन स्टोर में पहले से ही इस ऑब्जेक्ट के लिए XYZ की एक आईडी है।

डेटाबेस में देखकर मैं देखता हूं कि आइटम पिछले चरण में ठीक तरह से बनाया गया है। एक सूची के माध्यम से एक ही स्क्रीन और आइटम पर नेविगेट करना (निर्माण और पुनर्निर्देशन के बाद नहीं) ठीक काम करता प्रतीत होता है। क्या मुझे इंतजार करना है या अपोलो स्टोर के लिए सही तरीके से रहने के लिए किसी तरह का समय निर्धारित करना है?

मैं मानक अपोलो ग्राहक का उपयोग कर रहा @graphql बाध्यकारी/

gql लपेटकर:

query getEvent($eventId: ID!) { 
    Event(id:$eventId) { 
     id 
     headline 
     photo 
     location 
     startTime 
     creator { 
     username 
     photo 
     } 
    } 
    } 
`; 

और यहाँ एक कोड स्निपेट

@graphql(getEventGql,{ 
    options: ({route}) => { 
    console.log('route params', route.params); 
    return { 
     variables: { 
     eventId: route.params.eventId, 
     } 
    } 
    }, 
}) 

@connect((state) => ({ user: state.user })) 
export default class EventDetailScreen extends Component { 
... 

उत्तर

21

आप को भी id जोड़ने के लिए है creator फ़ील्ड:

query getEvent($eventId: ID!) { 
    Event(id:$eventId) { 
     id 
     headline 
     photo 
     location 
     startTime 
     creator { 
     id 
     username 
     photo 
     } 
    } 
    } 
+0

यह त्रुटि थी जहां नेस्टेड संपत्ति में आईडी की आवश्यकता नहीं थी, लेकिन रूट स्तर पर आईडी की आवश्यकता थी, इसलिए यह उत्तर उपयोगी था। मैं हालांकि क्यों एक स्पष्टीकरण की सराहना करता हूं। –

+0

@ एबीसीडी.का मैं 100% निश्चित नहीं हूं, लेकिन ऐसा लगता है कि कुछ परिणाम कैशिंग चल रहा है, इसलिए आपको इसे पुनर्प्राप्त करने के लिए अपोलो क्लाइंट के लिए अद्वितीय पहचानकर्ता प्रदान करना होगा। कुछ समझ में आता है, लेकिन 1.0.0 के रिलीज से पहले मुझे यह समस्या नहीं मिली है, इसलिए मैंने अस्थायी रूप से 0.10.1 पर वापस कर दिया है – ViggoV

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