Я смешиваю навигацию по стопкам, ящикам и вкладкам.
И я пытаюсь отправить реквизиты дочерним tabnavigator, но когда я вхожу в дочерний процесс, он не определен.
Вот мой Навигатор.
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)}", я получил ошибку "undefined".
Так что я думаю, что это связано с тем, что я посылаю реквизиты для навигации «PlantDetail», которая не является «реальным компонентом», просто используйте для навигации.Но я не знаю, как этого добиться.Кроме того, я хотел бы получить информацию о тазе в 2 компонента (PlantDetailInfo & PlantDetailHistory).