我有一个错误,真的不知道为什么。这是一个用于测试反应本机的简单代码简单代码,想创建一个与其他类的类,并用一个按钮来增加数量:
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
TouchableHighlight,
Text,
View
} from 'react-native';
export default class Apprentissage1 extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcolm bitch
</Text>
<Product name="Product 1"/>
<Product name="Product 2"/>
</View>
);
}
}
class Product extends Component {
constructor(props) { //Constructeur
super(props);
this.state = {
quantity: 0
};
}
addToCart(){
this.setState({
quantity: this.state.quantity + 1
})
}
render(){
return(
<View style={styles.container}>
<h2>{this.props.name}</h2>
<p>Quantity: {this.state.quantity}</p>
<TouchableHighlight onPress={this.addToCart.bind(this)}>
Add To cart
</TouchableHighlight>
</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('Apprentissage1', () => Apprentissage1);
谢谢您的帮助:)
用反应本机<View>
组件替换<h2>
和<p>
标签。
您不能在本机应用程序中使用DOM元素。
这是因为您使用的是非组件元素,例如H2,P是HTML元素,而不是反应本性组件。正确使用的组件是Text
然后使用H2和p的文本。只需操纵其字体以适应您的需求即可。
<Text style={{ fontSize: 18 }}>{this.props.name}</Text>
<Text style={{ fontSize: 12}}>Quantity: {this.state.quantity}</Text>
ToucheableHighlight
也应包含一个单个元素。
<ToucheableHighlight
onPress={this.addToCart.bind(this)}
>
<Text>
Add to Cart
</Text>
</ToucheableHighlight>
我不确定错误在哪里触发,但是TouchableHighlight
的onPress
可以是() => { this.setState({quantity: this.state.quantity + 1}) }
而不是this.bind.addToCart(this)
。
将产品类别分离到新文件,然后将其导入。React Native不太喜欢在同一文件中拥有多个组件。
您还如何初始化项目?什么是错误消息?