यह सवाल प्रतिक्रियाशील रूप से जेएसएक्स फ़ाइलों को आयात करने से संबंधित है।प्रतिक्रिया: गतिशील आयात jsx
असल में हमारे पास एक मुख्य घटक है जो डेटाबेस में संग्रहीत संरचना के आधार पर गतिशील रूप से अन्य घटकों को प्रस्तुत करता है। गतिशील घटक उपनिर्देशिका "./components" में संग्रहीत हैं।
import CompA from './Components/CompA';
import CompB from './Components/CompB';
var components = {
'CompA': CompA,
'CompB': CompB
}
और हम उन्हें का उपयोग कर प्रस्तुत करना: हम स्थिर इस रूप में परिभाषित
var type = 'CompA'
var Component = components[type];
...
<Component />
हालांकि यह ठीक काम करता है, यह थोड़ा हमारे लिए भी स्थिर है। हमारे पास 100+ घटक (कॉम्पा/कॉम्प) हैं और स्थिर रूप से परिभाषित करते हैं कि वे काम नहीं करते हैं।
क्या सभी जेएसएक्स फ़ाइलों को "./compontents" में आयात करना संभव है और घटक-सरणी को पॉप्युलेट करना संभव है?
और, वास्तव में क्या होगा (वास्तव में) अच्छा होगा अगर हम मुख्य घटक के लिए "./components" पथ भेज सकते हैं। और मुख्य घटक .jsx फ़ाइलों को आयात करने के लिए इस पथ का उपयोग करेगा। इस तरह:
<MainComponent ComponentPath="./SystemComponents">
और .JSX फ़ाइलों के लिए पथ के रूप में "./SystemComponents" का प्रयोग करेंगे:
<MainComponent ComponentPath="./UserComponents">
आयात पथ के रूप में "./UserComponents" का प्रयोग करेंगे।
अच्छा! यह समाधान वास्तव में हमारे लिए वास्तव में अच्छा काम करता है। हम सभी पुस्तकालयों (उपर्युक्त उदाहरण में अलग-अलग पथ) आयात कर सकते हैं और वांछित लाइब्रेरी को प्रोप के रूप में पास कर सकते हैं। पुनश्च। कुछ कारणों से मुझे ".comp_a" से निर्यात करने के लिए निर्यात कॉम्पा नहीं मिल सका, उन्हें पहले आयात करना था, और उन्हें एक जेसन ऑब्जेक्ट में निर्यात करना था। – mathan
@ माथन एक लाइनर निर्यात बेबेल चरण -1 प्रीसेट का हिस्सा है: [निर्यात-एक्सटेंशन] (http://babeljs.io/docs/plugins/transform-export-extensions/) –