javascript - 如何在运行时更改 react native 中的导航器左按钮?

标签 javascript react-native

我已经使用 Login.js 作为路由组件启动了 Navigtor。登录时,我使用推送方法导航到显示滑动菜单的仪表板屏幕。我已经使用react-native-drawer-layout实现了滑动菜单。 Dashbord.js 是另一个文件。现在我想控制导航栏左侧按钮。 提前致谢。

最佳答案

为此,您必须在 App.js 中管理每个路由的不同情况

App.js

const NavigationBarRouteMapper = {
    LeftButton(route, navigator, index, navState) {
        switch (route.id) {
            case 'Dashboard':
                return (
                    <TouchableOpacity
                        style={styles.navBarLeftButton}
                        onPress={() => {_emitter.emit('openMenu')}}>
                        <Icon name='menu' size={25} color={'white'} />
                    </TouchableOpacity>
                )
           case 'Page1':
                return (
                    <TouchableOpacity
                        style={styles.navBarLeftButton}
                        onPress={() => {_emitter.emit('openMenu')}}>
                        <Icon name='menu' size={25} color={'white'} />
            case 'Page2':
                return (
                    <TouchableOpacity
                        style={styles.navBarLeftButton}
                        onPress={() => {navigator.pop()}}>
                        <Icon name='arrow-back' size={25} color={'white'} /> //you can change icon as your requirements
                    </TouchableOpacity>
                )
            default:
                return (
                    <TouchableOpacity
                        style={styles.navBarLeftButton}
                        onPress={() => {_emitter.emit('back')}}>
                        <Icon name='chevron-left' size={25} color={'white'} />
                    </TouchableOpacity>
                )
        }
    },

    RightButton(route, navigator, index, navState) {
        return (
            <TouchableOpacity
                style={styles.navBarRightButton}>
                <Icon name='more-vert' size={25} color={'white'} />
            </TouchableOpacity>
        )
    },

    Title(route, navigator, index, navState) {
        return (
            <Text style={[styles.navBarText, styles.navBarTitleText]}>
                {route.title}
            </Text>
        )
    }
}

You can able to change left button icon as I have added menu icon on Page1 and arrow-back icon on Page2.

Refer to this link for full implementation of Drawer in react-native: Navigation Drawer

关于javascript - 如何在运行时更改 react native 中的导航器左按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40671412/

相关文章:

ios - 卸载包后无法运行 React Native iOS 应用程序

ios - react native : how to change status bar icon colors

javascript - 为什么我不能在 Javascript 函数内分配变量?

javascript - 如何在表单中提交禁用输入元素?

javascript - FF 扩展提交的意外推文文本

javascript - React Native - React Native Firebase - Google 登录 Android

react-native - 如何在 React Native 中构建登录和注册系统

javascript - JqG​​rid:如何从 onCellSelect 事件中获取所有列值?

javascript - 使用 Node js 进行 2 个异步查询

javascript - 在 React 中突出显示搜索到的文本