समस्या:रिएक्टनेटिव में नेविगेशन के साथ काम करते समय त्रुटि "एक नेविगेटर में केवल 'स्क्रीन' घटक शामिल हो सकते हैं" त्रुटि को कैसे संभालें?
समाधान
अपने ऐप पर काम करते समय आपको ऊपर बताई गई समस्याओं का सामना करना पड़ सकता है। यहां समझेंगे कि ऐसी त्रुटि क्यों आती है और इससे बचने के लिए क्या किया जा सकता है।
यहाँ वह कोड है जो हमें त्रुटि देता है -
उदाहरण
App.js
<पूर्व>आयात * प्रतिक्रिया के रूप में 'प्रतिक्रिया' से; आयात {नेविगेशनकंटेनर} '@ प्रतिक्रिया-नेविगेशन/देशी' से; आयात { createStackNavigator } '@ प्रतिक्रिया-नेविगेशन/स्टैक' से; आयात {बटन, दृश्य, चेतावनी, पाठ} 'प्रतिक्रिया-मूल' से; कॉन्स्ट स्टैक =createStackNavigator (); कॉन्स्ट होमपेज =({नेविगेशन}) => {वापसी (<बटन शीर्षक ="यहां क्लिक करें" ऑनप्रेस ={() => नेविगेशन। नेविगेट ('अबाउट', { नाम:'अबाउट पेज'})}/>);}; कॉन्स्ट अबाउटपेज =() => {रिटर्न <टेक्स्ट> आप पेज के बारे में अंदर पहुंच गए हैं!टेक्स्ट>;}; कॉन्स्ट माईस्टैक =() => { वापसी ( <नेविगेशनकंटेनर> <स्टैक। नेविगेटर> <स्टैक। स्क्रीन नाम ="होम" घटक ={होमपेज} विकल्प ={{शीर्षक:'होम पेज से:नेविगेशन'}} /> <स्टैक। स्क्रीन का नाम ="के बारे में" घटक ={अबाउटपेज} /> );}; डिफ़ॉल्ट MyStack निर्यात करें;संकलन करते समय आपके कमांड प्रॉम्प्ट में प्रदर्शित त्रुटि इस प्रकार है -
आपके फ़ोन स्क्रीन पर त्रुटि का प्रदर्शन इस प्रकार है -
त्रुटि के कारण - एक नेविगेटर में केवल 'स्क्रीन' घटक अपने प्रत्यक्ष बच्चों के रूप में शामिल हो सकते हैं
त्रुटि का पहला कारण खराब इंडेंटेशन के कारण है। यह बहुत आवश्यक है कि प्रत्येक घटक ठीक से इंडेंट किया गया हो। चाइल्ड एलिमेंट को पैरेंट कंपोनेंट के अंदर ठीक से इंडेंट किया गया है।
दूसरा मामला प्रत्येक घटक के अंत में छोड़े गए रिक्त स्थान के कारण है। स्क्रीन के अंत से रिक्त स्थान निकालें और फिर से संकलित करें। यह ठीक काम करेगा। कृपया किसी अन्य स्रोत से कोड पेस्ट करते समय सावधान रहें। आप ज्यादातर उन मामलों में इस त्रुटि का सामना करेंगे।
आइए अब उपरोक्त कोड को इंडेंट करें और यदि कोई हो तो रिक्त स्थान भी हटा दें। यहाँ आउटपुट के साथ अंतिम कोड है।