У меня небольшая проблема, следуя учебному курсу в разделе "Изучение реакции родного О Рейли".
Я нахожусь в первом приложении (WeatherProject), и когда я выполнил команду initProject для инициативной реакции, странно index.ios.js и index.android.js не были автоматически созданы? Я предполагаю, что это нормально. Поэтому я создал их и наполнил их, как показано ниже:
var React = require('react-native'); var { AppRegistry } = React; var WeatherProject = require('./WeatherProject'); AppRegistry.registerComponent('WeatherProject',() => WeatherProject);
Затем у меня есть файл WeatherProject.js следующим образом:
import React, { Component } from "react";
import { StyleSheet, Text, View, TextInput } from "react-native";
class WeatherProject extends Component {
constructor(props) {
super(props);
this.state = { zip: "" };
}
_handleTextChange = event => {
this.setState({ zip: event.nativeEvent.text });
};
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
You input {this.state.zip}.
</Text>
<TextInput
style={styles.input}
onSubmitEditing={this._handleTextChange}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center",
backgroundColor: "#F5FCFF"
},
welcome: { fontSize: 20, textAlign: "center", margin: 10 },
input: {
fontSize: 20,
borderWidth: 2,
padding: 2,
height: 40,
width: 100,
textAlign: "center"
}
});
export default WeatherProject;
и сделал файл index.js следующим образом:
import WeatherProject from "./WeatherProject";
export default WeatherProject;
Является ли книга, что я следую устаревшей или я делаю что-то глупое? Но когда я запускаю приложение на симуляторе iphone, я получаю сообщение об ошибке "AppRegistry не является вызываемым модулем (вызов runApplication)"
Вы импортируете неправильный AppRegistry и реагируете.
Попробуйте импортировать их в свои index.ios.js и index.android.js следующим образом:
import React from 'react';
import { AppRegistry } from 'react-native';
import WeatherProject from './WeatherProject';
Это должно сработать.
Вы должны проверить официальную документацию, вот пример приложения AppRegistry.registerComponent
https://facebook.github.io/react-native/docs/props.html#content