2017-06-28 14 views
9

अब से जवाब के लिए धन्यवाद,क्रॉस-प्लेटफ़ॉर्म ऐप के लिए प्रतिक्रियात्मक मूल में index.js (index.ios.js, index.android.js) के बजाय index.js का उपयोग कैसे करें?

मैं में एक नौसिखिया प्रतिक्रिया मूल निवासी हूँ, मैं एक पार मंच अनुप्रयोग बनाना चाहते तो मैं index.js बनाया:

import React from 'react'; 
import { 
    Component, 
    View, 
    Text, 
} from 'react-native'; 

class ReactApp extends Component { 

    render() { 
     return (
      <View><Text>Hello world</Text></View> 
     ); 
    } 
} 

module.exports = ReactApp; 

तब मैं सूचकांक आयातित .js दोनों index.ios.js और इस तरह index.android.js से:

import { AppRegistry } from 'react-native'; 
import ReactApp from './index'; 

AppRegistry.registerComponent('ReactApp',() => ReactApp); 

मैं इस के बाद लगता है कि यह काम करना चाहिए, लेकिन मैं इस त्रुटि मिलती है:

enter image description here

+0

सूचकांक फ़ाइल का नाम बदलने और फिर कोशिश करें –

+0

आपकी छवि नहीं है कृपया:

import {AppRegistry} from 'react-native'; import App from './app/App'; AppRegistry.registerComponent('appMobile',() => App); 

स्रोत (आपके ऐप्लिकेशन के नाम के साथ appMobile की जगह) काम कर रहे। साथ ही, आपने यह नहीं बताया कि आप ऐसा करके क्या करने की कोशिश कर रहे थे। –

+0

@MichaelCheng छवि काम कर रही है मुझे लगता है कि मैंने अपने फोन पर भी कोशिश की है, मैं एक क्रॉस-प्लेटफार्म ऐप –

उत्तर

19

के बाद प्रतिक्रिया v0.49, आप डॉन index.ios.js और index.android.js की आवश्यकता नहीं है। आप केवल जरूरत है index.js: (https://github.com/facebook/react-native/releases/tag/v0.49.0)

New projects have a single entry-point (index.js) from now on

+0

जो मैं ढूंढ रहा था, क्योंकि मैंने अन्य संस्करण (पुराने) के साथ काम किया है और मैंने 2 अलग-अलग फाइलें देखी हैं, लेकिन 0.4 9 से आपको ऐप बनाने के बाद एक फाइल मिल जाएगी। –

+0

यदि आप अपने आरएन संस्करण को अपग्रेड करना चाहते हैं तो https://facebook.github.io/react-native/docs/upgrading.html ('प्रतिक्रिया-मूल-गिट-अपग्रेड' को आकर्षक की तरह काम करना चाहिए) –

+1

क्या यह संभव है अभी भी 2 प्रतिक्रियाओं का उपयोग नए प्रतिक्रिया-मूल के साथ करें? – pstanton

6

आप इस पीछे के बारे में जा रहे हैं। index.ios.js और index.android.js हमेशा डिफ़ॉल्ट react-native init प्रोजेक्ट में अलग-अलग प्रविष्टि बिंदु होंगे। यदि आप उन्हें index.js के माध्यम से एक ही कोडबेस चलाने के लिए चाहते हैं, तो आपको इसे index.ios.js और index.android.js आयात index.js आयात करना चाहिए और index.js में परिभाषित समान आधार घटक पंजीकृत करना चाहिए।

उदाहरण के लिए, आप देख सकते हैं कि यह example ToDo app (Github repo here) में कैसे किया गया है।

यदि आप अपने रूट फ़ोल्डर में index.js डालते हैं, तो यह index.android.js और index.ios.js के साथ संघर्ष करेगा जब आप इसे सीधे संदर्भित नहीं करते हैं। तो आपको अपने आयात में सटीक पथ को इंगित करने की आवश्यकता होगी। नीचे दिया गया कोड देखें।

index.ios.js और index.android.js (समान सामग्री)

import React from 'react'; 
import { AppRegistry } from 'react-native' 
import ReactApp from './index.js' 
// Had you placed index.js in another folder like `./app`, you could instead do your import with this shorthand: 
// import ReactApp from './app' 

AppRegistry.registerComponent('ReactApp',() => ReactApp) 

index.js

// Note: I noticed that you imported Component from the wrong place. That might also be contributing to your issue so I fixed it here. 
import React, { Component } from 'react'; 
import { 
    View, 
    Text, 
} from 'react-native'; 

// Unless you are exporting multiple things from a single file, you should just use this. 
// It's more idiomatic than using module.exports = ReactApp; 
export default class ReactApp extends Component { 
    render() { 
     return (
      <View><Text>Hello world</Text></View> 
     ); 
    } 
} 
+0

मैंने आपके कोड की प्रतिलिपि बनाई और चिपकाया लेकिन मैं मुझे एक ही त्रुटि मिल रही है: - /, –

+0

@davutdev अब इसे संपादन के साथ आज़माएं। मैंने प्रतिक्रिया आयात को याद किया क्योंकि मैंने जवाब को वास्तव में जल्दी से रखा था। आपको अभी भी तीनों फाइलों में इसकी आवश्यकता है। साथ ही, यह महसूस किया कि शॉर्टंड '।/index' आयात में नामकरण विवाद होगा यदि आप 'index.something' से शुरू होने वाली अन्य फ़ाइलों के समान निर्देशिका में' index.js' डालते हैं। क्या आपने एक और फ़ाइल नाम इस्तेमाल किया था या इसे कहीं और रखा था, जो कोई मुद्दा नहीं होता मैंने जवाब में इसे समझाने के लिए टिप्पणियां जोड़ दीं। मैंने अभी भी एक ब्रांड नई परियोजना में इसका परीक्षण किया है, इसलिए यदि कोई त्रुटि है, तो यह किसी और चीज से होनी चाहिए। –

+0

अब यह काम करता है, धन्यवाद अल ot –

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