_index.ios
_ファイルのEnterName
で使用したい別のフォルダーにNavigator
という名前のコンポーネントがあります。 EnterName
を同じファイルに入れても問題はありませんが、別のファイルからインポートしようとすると次のようになります。
_Element type is invalid: expected a string (for built-in components
or a class/function (for composite components) but got: undefined.
Check the render method of `Navigator`
_
EnterNameコンポーネントをインポートする2つの異なる方法を試しましたが、どちらも機能しません。
import {EnterName} from './App/Components/EnterName'; var EnterName = require('./App/Components/EnterName');
以下は、Navigator
を使用し、別のフォルダーからEnterName
コンポーネントを使用しようとするテキストです(EnterNameが同じファイルで宣言されている場合に機能します)。
_ render() {
return (
<Navigator
initialRoute={{name: 'Name entry', index: 0}}
renderScene={(route, navigator) =>
<EnterName
name={route.name}
onForward={() => {
var nextIndex = route.index + 1;
navigator.Push({
name: 'Scene ' + nextIndex,
index: nextIndex,
});
}}
onBack={() => {
if (route.index > 0) {
navigator.pop();
}
}}
/>
}
/>
);
}
}
_
また、EnterNameファイルを表示する場合は、次の場所にあります。
_import React, {
Text,
View,
Component,
Image,
StyleSheet
} from 'react-native';
class EnterName extends Component {
render() {
return (
<View style={styles.center}>
<View style={styles.flowRight}>
<TextInput style={styles.inputName}
placeholder="Enter your name"
textAlign="center"
onChangeText={(text) => this.setState({text})}
//value={this.state.text}
/>
<TouchableHighlight style={styles.button}
underlayColor='#99d9f4'>
<Text style={styles.buttonText}> Go </Text>
</TouchableHighlight>
</View>
</View>
)
}
}
// The stylesheet is here, and then below it I have:
module.export = EnterName;
_
コードをモジュール化する方法を理解するのを手伝ってもらえますか?
編集:module.exportsの最後の "s"を忘れました。エクスポートのデフォルトクラス_classnameはコンポーネント{を拡張するようです。
module.export
の最後に「s」がありませんか? module.exports
である必要があります。その場合、インポートは
import EnterName from './App/Components/EnterName
Module.exportsの代わりに使用することもできます
export default class EnterName extends Component
https://developer.mozilla.org/en/docs/web/javascript/reference/statements/import