2016-11-22 10 views
8

मेरे पास एक परिदृश्य है जहां मैं अपने प्रतिक्रिया स्थिति में एक reducer से डेटा पास कर रहा हूँ।प्रतिक्रिया में अपरिभाषित की जांच

डेटा:

{ 
    "id": 1, 
    "title": "Test", 
    "content": { 
     "body": "sdfsdf" 
     "image": "http://example.com" 
    } 
} 

का उपयोग componentWillRecieveProps, इस शीर्षक को पुन: प्राप्त करने के लिए पूरी तरह से काम करता है।

componentWillReceiveProps(nextProps) { 
    this.setState({ 
     title: nextProps.blog.title, 
    }) 
} 

हालांकि, मैं कठिनाई एकत्रित फ़ील्ड को पुन: प्राप्त हो रही है। जब मैं यह कर:

componentWillReceiveProps(nextProps) { 
    console.log("new title is", nextProps.blog.title); 
    console.log("new body content is", nextProps.blog.content["body"]); 
    this.setState({ 
     title: nextProps.blog.title, 
     body: nextProps.blog.content["body"] 
    }) 
} 

मैं इस त्रुटि मिलती है:

enter image description here

एक अपरिभाषित शरीर की त्रुटि दूर चला जाता है के बाद मैं डिबगर क्लिक करें और सामग्री भरी हुई है। क्या वैसे भी मैं इस मुद्दे का मुकाबला कर सकता हूं?

मैं इस तरह अपरिभाषित के लिए जाँच करने की कोशिश की:

if (typeof nextProps.blog.content["body"] != 'undefined'){ 

लेकिन यह या तो काम नहीं करता है और मुझे विश्वास है क्योंकि ब्लॉग अपरिभाषित है बस।

+1

पहचान आई थिंक अपनी गलती है कि आपके "शरीर" "सामग्री" – naomi

+0

@naomi धन्यवाद के अंदर घोंसला है! मैंने अपने कोड को सिर्फ सामग्री की बजाय blog.content पर तय किया है, क्या आपका मतलब था? मुझे अभी भी एक ही त्रुटि मिल रही है। – lost9123193

उत्तर

5

क्या आप जाँच कर रहा है आप रंगमंच की सामग्री की जाँच करके शुरू में है या नहीं परिभाषित किया गया है कि क्या करता है, तो nextProps.blog.content अपरिभाषित या नहीं है, क्योंकि आपके शरीर की तरह

componentWillReceiveProps(nextProps) { 

    if(nextProps.blog.content !== undefined && nextProps.blog.title !== undefined) { 
     console.log("new title is", nextProps.blog.title); 
     console.log("new body content is", nextProps.blog.content["body"]); 
     this.setState({ 
      title: nextProps.blog.title, 
      body: nextProps.blog.content["body"] 
     }) 
    } 
} 

आप अपरिभाषित के लिए जाँच करने के लिए प्रकार का उपयोग करने की आवश्यकता नहीं इसके अंदर नीडिंत है क्या कर सकते हैं , बस सख्त ऑपरेटर !== जो साथ ही उनके प्रकार द्वारा मूल्य की तुलना मूल्य के रूप में

आदेश में अपरिभाषित के लिए जाँच करने के लिए, आप भी

तरह typeof ऑपरेटर का उपयोग कर सकते हैं 10
+1

आह मैं देखता हूं, मैं कोटेशन में अपरिभाषित था। यह चाल है। धन्यवाद! – lost9123193

+1

कोई समस्या नहीं है। मदद करने के लिए खुश –

0

मैं चेहरे में एक ही समस्या थी ..... और मैं typeof()

if (typeof(value) !== 'undefined' || value != null) { 
     console.log('Not Undefind or Not Null') 
    } else { 
     console.log('Undefind or Null') 
} 

का उपयोग करके समाधान मिल गया आप को typeof() उपयोग करने के लिए होना आवश्यक है undefined

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