現在、React Nativeで作業中です。そこにはReact NavigationとStackNavigator
に関する質問があります。ヘッダーにカスタムの閉じるボタンを追加したいと思いますが、これを行う方法がわかりません。React NavigationのStackNavigatorヘッダー内のカスタム閉じるボタン
私は画面に移動することは可能ですが、例えば戻るか何かを発送することはできません。
私の例ではHomeScreen
のnavigationOptions
が機能しています。引き出しが開き、SettingsButton
が設定画面に移動します。しかしEntryScreen
のnavigationOptions
に問題があります。そこに戻ってCloseButton
を構築するが、私はナビゲーションオブジェクトにアクセスする必要があります。
navigate
とすると、他の画面に移動することはできますが、親オブジェクトnavigation
にアクセスする必要があります。たとえば、引き出しのクラスでは、props.navigation
(たとえば、props.navigation.navigate('Home')
またはprops.navigation.goBack(null)
)にアクセスすることが可能です。
これは現在のコードの一部です。もちろん、それは現在のでnavigation
に不足しているアクセスの作業ではないです:
const Stack = StackNavigator({
Home: {
screen: HomeScreen,
navigationOptions: {
header: ({ navigate }) => ({
left: <DrawerButton navigate={navigate} />,
right: <SettingsButton navigate={navigate} />
})
}
},
Entry: {
screen: EntryScreen,
navigationOptions: {
header: ({ navigation }) => ({
right: <CloseButton navigate={navigation } />
})
}
}
})
export const Drawer = DrawerNavigator({
Home: {
screen: Stack
}},
{
contentComponent: HamburgerMenu
}
)
これらはボタンです:
export const CloseButton = (props) => {
let testButton = <TouchableHighlight onPress={() => props.navigation.goBack(null)}>
<Icon name='close' style={styles.headerButtonIcon} />
</TouchableHighlight>
return testButton
}
export const SettingsButton = (props) => (
<TouchableHighlight onPress={() => props.navigate('Settings')}>
<Icon name='more-vert' style={styles.headerButtonIcon} />
</TouchableHighlight>
)
たぶん、あなたはそこに私を助けることができます。前もって感謝します!