2017-02-17 13 views
1

Wörtlich alles, was ich versuche zu tun ist, bewegen Sie den Initialisierungscode von index.android.js/index.ios.js zu und app/index.js Datei. Ich exportiere das und importiere es zurück in index.android.js oder index.ios.js.Native Build Error mit Garn reagieren?

Dann bekomme ich den Fehler.

Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object

Hat dieses Problem nicht haben, wenn ich npm verwendet. Es scheint, als wäre der Build-Prozess des Garns anders, denn wenn ich etwas in meinem Packer speichere, heißt es

Bundling 'index.android.js' aber nichts über iOS.

Meine app/index.js wie folgt aussieht

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

export default class Snapp extends Component { 
    render() { 
    return (
     <View style={styles.container}> 
     <Text style={styles.welcome}> 
      Welcome to React Native! 
     </Text> 
     </View> 
    ); 
    } 
} 

Und meine index.android.js und index.ios.js Dateien so aussehen

import Snapp from './app' 
import { AppRegistry } from 'react-native'; 

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

Irgendwelche Gedanken?

+0

Haben Sie den Packager mit 'Neustart reagieren nativen Start - --Reset-Cache' zwischen den Garninstallationen? – wmcbain

+0

Ich habe 'rm gam.lock && rm -rf node_module && npm install' in meinem Projekt ausgeführt und auch 'reactive-native start --reset-cache' ausgeführt und immer noch den Fehler erhalten. – maxwellgover

+0

Stellen Sie sicher, dass der Packager nicht aktiv ist, versuchen Sie es auch mit 'rm -rf ios/build ios/DerivedData rm -rf node_modules'. Öffne das Xcode-Projekt und reinige (cmd + shift + K). Installieren Sie die Module neu, starten Sie den Packager mit dem Cache zum Zurücksetzen neu, und führen Sie dann den Befehl aus. – wmcbain

Antwort

1

versuchen, die App in der gleichen JS mit der Komponente zu registrieren.

app/index.js

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

export default class Snapp extends Component { 
    render() { 
    return (
     <View style={styles.container}> 
     <Text style={styles.welcome}> 
      Welcome to React Native! 
     </Text> 
     </View> 
    ); 
    } 
} 
AppRegistry.registerComponent('Snapp',() => Snapp); 

index.ios.js/index.android.js

require('./app/'); 
+0

Versucht dies, aber jetzt gibt es mir eine 'Konnte Batch Batch nicht bekommen, stellen Sie sicher, dass Ihr Bundle ordnungsgemäß verpackt ist 'Fehler. Wenn ich auf den ursprünglichen Code zurücksetze, verschwindet der Fehler. – maxwellgover

+0

@maxwel stellen Sie sicher, dass Sie nach der App '/' haben. require ('./ app /'); – Damathryx

+0

require ('./App'); wird zu diesem Fehler führen – Damathryx