是否有任何想法如何在react native中从父项向子组件发送道具。我在react中听说过,但在react-native中不知道。 我想要的只是当用户按下AddToCart按钮(实际上包裹在可触摸的不透明的onpress事件中)时,道具应该发送到另一页。Somone告诉我有关使用redux的信息,但我认为这也可能发生在react-native中。
底线:按下该按钮时,应该将道具发送到另一页。
ItemDetais页面
应该从哪里发送道具。
cart() {
let product_id = this.props.navigation.state.params.id;
AsyncStorage.getItem('cart_id')
.then((_id) => {
API.post_data(_id, product_id)
.then((data) => {
if (data) {
// this.props.navigation.navigate('Cart', {id: data.cart.id})
// was using this method.But when I directly open
// cart page it gives me an error undefined is not
// an object..blah blah
}
})
})
}
<TouchableOpacity onPress={()=> { this.cart() }} >
<Text>AddToCart<Text>
</TouchableOpacity>
购物页面
应该接收道具的地方。
componentDidMount() {
let cart_id = this.props.navigation.state.params.id;
// above method is just total waste.
API.getCartItem(cart_id)
.then((response) => {
if (response) {
this.setState({
data: response
});
} else {
alert('no data')
}
})
}
答案 0 :(得分:0)
根据React Navigation docs,此方法应该有效:
componentDidMount() {
const { navigation } = this.props;
// The 'NO-ID' is a fallback value if the parameter is not available
const cart_id = navigation.getParam('id', 'NO-ID');
...
}