我混合使用堆栈,抽屉和标签导航。
我尝试将道具发送给孩子的导航器,但是当我登录孩子时,它是未定义的。
这是我的导航器。
const PlantTabNavigator = createBottomTabNavigator({
Infos: {
screen: PlantDetailInfos
},
History: {
screen: PlantDetailHistory
}
});
const PlantStackNavigator = createStackNavigator({
PlantLibrary: {
screen: PlantLibrary,
},
PlantDetail: {
screen: PlantTabNavigator,
}
});
这是我的父母-PlantLibray
class PlantLibrary extends React.Component {
constructor(props) {
super(props);
this.state = {
plants: []
};
this._getPlants();
this._goToPlant = this._goToPlant.bind(this);
}
_getPlants() {
restGet('plants')
.then(data => {
this.setState({
plants: data.datas
});
});
}
_goToPlant(idPlant = number) {
this.props.navigation.navigate('PlantDetail', { idPlant: idPlant })
}
render() {
return (
<View style={styles.main_container}>
<FlatList
data={this.state.plants}
keyExtractor={(item) => item.id.toString()}
renderItem={({item}) => <PlantItem plant={item}
goToPlant={this._goToPlant}
/>}
/>
</View>
);
}
}
这是我的孩子之一-PlantDetailInfo(另一个是PlantDetailHistory)
class PlantDetailInfos extends React.Component {
constructor(props) {
super(props);
console.log(this.props);
}
render() {
return (
<View style={ styles.container }>
{/*<Text>Plant Détail Infos {this.props.navigation.getParam(idPlant)}</Text>*/}
<Text>Plant Détail Infos</Text>
</View>
);
}
}
它运行良好,即当我单击touchableopacity时,我转到PlantDetailInfos,但是当我取消注释“ {this.props.navigation.getParam(idPlant)}”时,出现错误“未定义”。
因此,我认为与将道具发送到“ PlantDetail”导航(这不是“真实组件”)相关的事实与之相关,只是用于导航。但是,我不知道如何实现这一目标。 此外,我想将tase信息分为2个组件(PlantDetailInfo和PlantDetailHistory)。