gemacht, während ich eine flache Navigation wie dieseNicht verschachtelten Bildschirm reagieren-Navigation
const MainNavigator = TabNavigator({
Map: {
screen: MapScreen
},
RoadObject: {
screen: RoadObjectScreen
}
});
Klasse RoadObjectScreen habe jedes Mal gemacht wird, wenn es navigiert wird.
class RoadObjectScreen extends Component {
static navigationOptions = ({ navigation }) => ({
title: navigation.state.params && navigation.state.params.roadObject,
tabBarVisible: false
});
render() {
console.log('Navigation:', this.props.navigation);
const { navigation } = this.props;
return (
<View>
<Text style={{ paddingTop: 100 }} onPress={() => navigation.goBack()}>
Welcome to {navigation.state.params && navigation.state.params.roadObject }
</Text>
</View>
);
}
}
aber wenn ich Bildschirm verschachtelt bekommen, stoppt sie gerendert werden, nur eine zu Beginn der Anwendung. So console.log ('Navigation:', this.props.navigation); Popups nur einmal.
const MainNavigator = TabNavigator({
Map: {
screen: MapScreen,
navigationOptions: {
tabBarVisible: false
}
},
RoadObjectMain: {
screen: StackNavigator({
RoadObject: {
screen: RoadObjectScreen
}
})
}
});
Warum passiert das? Wie bekomme ich es gerendert und bekomme this.props.navigation zugänglich. Vielen Dank!
Vielen Dank für Ihre Antwort, Bennygenel! Aber wie kann ich Änderungen in dieser.props.navigation im RoadObject (StackNavigator, nicht wie erwähnt TabNavigator) abfangen. Welche Funktion wird ausgeführt, wenn dieser Bildschirm aktiviert ist? – podeig
Wenn in diesem Bildschirm keine Änderung erfolgt, wird keine Funktion ausgelöst. Wenn Sie einen Zustand oder einen Requisitenwert ändern, wird 'componentWillReceiveProps' ausgelöst. Für weitere Informationen sehen Sie [Lebenszyklus der Komponenten] (https://reactjs.org/docs/react-component.html#the-component-lifecycle) – bennygenel