react-native-navigation抽屉没有打开

时间:2018-01-05 19:48:06

标签: react-native react-native-navigation

单击导航栏按钮,抽屉未打开。 这是我用于按下按钮的代码

if (event.type === 'NavBarButtonPress') {
        if (event.id === 'sideDrawerToggle') {
            this.props.navigator.toggleDrawer({
                side: 'left',
                animated: true,
            });
        }
    }

这是抽屉设置

Navigation.startTabBasedApp({
        tabs: [
            {
                label: 'Find Place',
                screen: 'places.FindPlace',
                title: 'Find Place', 
                icon: source[0],
                navigatorButtons: {
                    leftButtons: [
                        {
                            icon : source[2],
                            title : 'Menu',
                            id: 'sideDrawerToggle'
                        }
                    ]
                }
            },
            {
                label: 'Share Place', 
                screen: 'places.SharePlace', 
                title: 'Share Place', 
                icon: source[1],
                navigatorButtons: {
                    leftButtons: [
                        {
                            icon: source[2],
                            title: 'Menu',
                            id: 'sideDrawerToggle'
                        }
                    ]
                }
            }
        ],
        drawer: {
            left: { 
                screen: 'places.SideDrawer'
            }
        }
    });

这就是我抽屉的样子

    import React, {Component} from 'react';
import {View, Text, Dimensions} from 'react-native';


class SideDrawer extends Component {
    render() {
        return(
            <View style={[
                styles.container,
                {width: Dimensions.get('window').width * 0.8}
            ]}>
                <Text>Drawer</Text>
            </View>
        );
    }
}

const styles = {
    container: {
        backgroundColor : 'white',
        paddingTop: 22,
        flex: 1
    }
};


export default SideDrawer;

通过搜索很多我发现给抽屉一个固定的宽度解决了问题。但它在我的情况下没有解决。我不知道代码有什么问题,它运行正常。

4 个答案:

答案 0 :(得分:5)

您可以简单地使用

this.props.navigation.openDrawer();

在屏幕上。

请通过以下链接查看官方文档和示例

https://reactnavigation.org/docs/en/drawer-based-navigation.html

https://reactnavigation.org/blog/#drawer-routes-have-been-replaced-with-actions

答案 1 :(得分:2)

您可以使用navigatorButtonsid: 'sideMenu'中指定内置按钮,它将为您带来魔力。即。

...
navigatorButtons: {
  leftButtons: [
    {
      id: "sideMenu"
    }
  ]
},
...

答案 2 :(得分:0)

我认为这不是设置抽屉导航的正确方法。在这里查看官方文档:https://reactnavigation.org/docs/navigators/drawer。它显示抽屉将导航到的每个组件是您在应用程序的主要组件中定义和设置的场景。

我还建议使用NativeBase.io https://docs.nativebase.io/Components.html#Drawer中的抽屉。这为iOS和Android提供了更好的外观和感觉,它看起来更加原生。

答案 3 :(得分:0)

您使用的是iPhone吗?似乎在wix中存在一个错误,它影响了他们而不是Android。

深层链接可能有效https://wix.github.io/react-native-navigation/#/deep-links