0
により、ネストされた画面をレンダリングされません。が反応し、ナビゲーション
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>
);
}
}
をしかし、私はネストされた画面を得るとき、それは1つのアプリケーションだけの開始時に、レンダリングされるように停止します。だからconsole.log( 'Navigation:'、this.props.navigation);ポップアップは1回だけです。
const MainNavigator = TabNavigator({
Map: {
screen: MapScreen,
navigationOptions: {
tabBarVisible: false
}
},
RoadObjectMain: {
screen: StackNavigator({
RoadObject: {
screen: RoadObjectScreen
}
})
}
});
どうしてですか?どのようにレンダリングしてthis.props.navigationをアクセス可能にするのですか? ありがとうございました!
あなたの答え、bennygenelありがとう!しかし、どのようにしてRoadObjectのthis.props.navigation(TabNavigatorではなくStackNavigator)の変更をキャッチすることができます。この画面がアクティブになっているときに実行される機能は何ですか? – podeig
この画面に変更がない限り、機能はトリガーされません。状態または小道具の値を変更すると、 'componentWillReceiveProps'が発生します。詳細については、[コンポーネントのライフサイクル](https://reactjs.org/docs/react-component.html#the-component-lifecycle) – bennygenel