Ich bekomme diesen Fehler und habe große Probleme damit.
Was ich hier versuche, besteht aus 3 verschiedenen Bildschirmen und einer Tab-Leiste, die zu jedem Bildschirm navigiert.
Hier ist mein Index:
import React, { Component } from 'react';
import { AppRegistry, Navigator, StyleSheet, View, Text } from 'react-native';
import Nav from './app/components/Nav';
import Screen from './app/Screen';
import Tabs from 'react-native-tabs'
import SwitchView from './SwitchView';
class Proj extends Component {
constructor(props){
super(props);
}
render(){
var x = "FeedView";
return(
<View style={styles.container}>
<Tabs selected={x} style={{backgroundColor:'white'}}
selectedStyle={{color:'red'}} onSelect={el=> {x = el.props.name}}>
<Text name="FeedView">First</Text>
<Text name="WikiView" selectedIconStyle={{borderTopWidth:2,borderTopColor:'red'}}>Second</Text>
<Text name="BoardView">Third</Text>
</Tabs>
<SwitchView id={x}/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
})
AppRegistry.registerComponent('Proj', () => Proj);
hier ist mein SwitchView:
import Feed from './app/pages/Feed/Feed';
import Board from './app/pages/Board';
import Wiki from './app/pages/Wiki';
class SwitchView extends Component {
render(){
var { id } = this.props;
switch (id) {
case "FeedView":
return <Feed/>
case "WikiView":
return <Wiki/>
case "BoardView":
return <Board/>
}
}
}
Dies wird wahrscheinlich durch einige ExportImportprobleme des JS-Moduls in Ihrem Programm verursacht. Dies liegt in der Regel aus einem der beiden folgenden Gründe: - /
Ich bin auf einen ähnlichen Fehler gestoßen, aber in meinem Fall wird er nicht durch export
, sondern durch import
verursacht, und ich habe die import
-Anweisung falsch verwendet, um etwas zu importieren, das im Modul nicht vorhanden ist.
In meinem Fall wurde die import
falsch geschrieben als:
import { MyComponent } from './MyComponents/MyComponent'
während eigentlich sollte es sein:
import MyComponent from './MyComponents/MyComponent'
Und es hat mich verrückt gemacht, und ich habe einen ganzen Tag gebraucht, um das herauszufinden.
Ändern Sie Ihre SwitchView-Definition in
export default class SwitchView extends Component...
Ändern Sie Ihre SwitchView so:
import Feed from './app/pages/Feed/Feed';
import Board from './app/pages/Board';
import Wiki from './app/pages/Wiki';
export default class SwitchView extends Component {
render(){
var { id } = this.props;
switch (id) {
case "FeedView":
return <Feed/>
case "WikiView":
return <Wiki/>
case "BoardView":
return <Board/>
}
}
}
In meiner Vase befand ich mich in reaktiver 0.46.4
und hatte so etwas wie import MainContainer from './app'
, wo das app
-Verzeichnis eine freigegebene index.js
-Datei unter Android und iOS hatte, aber React Native entdeckte keinen index.js
in app
. Sobald ich zu import MainContainer from './app/index.js'
gewechselt habe, hat es funktioniert.
Ich habe dieses Problem nur für die installierten Pakete erlebt
import WebView from 'react-native-webview-messaging/WebView';
Ich wechselte zu
import { WebView } from 'react-native-webview-messaging/WebView';
Wie unterscheidet sich das von module.exports = SwitchView?
Für mich funktioniert module.exports für alle meine js-Dateien außer einer.