首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react原生抽屉实现侧边栏/汉堡菜单

使用react原生抽屉实现侧边栏/汉堡菜单
EN

Stack Overflow用户
提问于 2017-03-12 19:56:35
回答 2查看 10.2K关注 0票数 3

我对React-Native非常陌生。我正在尝试通过实现'react-native drawer‘组件将侧栏/汉堡菜单添加到我的应用程序中。首先,我尝试将GitHub中的示例代码添加到我的新测试项目中,只是为了理解它是如何工作的。我面对屏幕上的错误。

如果我能得到一些帮助,我会很高兴的。或者你可以建议我更简单的方式来实现我的项目侧栏/汉堡包菜单。

代码语言:javascript
复制
import Drawer from 'react-native-drawer';
import React, {Component} from 'react';
import SideBarContent from '../common/SideBarContent';
import {Text,View} from 'react-native';

class SideBar extends Component{

    closeControlPanel = () => {
        this._drawer.close()
    };
    openControlPanel = () => {
        this._drawer.open()
    };

    render()
    {
        const drawerStyles = {
            drawer: { shadowColor: '#000000', shadowOpacity: 0.8, shadowRadius: 3},
            main: {paddingLeft: 3},
        }


        return (
            <Drawer
                type="static"
                content={<SideBarContent/>}
                openDrawerOffset={100}
                styles={drawerStyles}
                tweenHandler={Drawer.tweenPresets.parallax}
            >
                <View><Text>Drawer</Text></View>
            </Drawer>
        );
    }
}

这是我的SideBarContent组件。

代码语言:javascript
复制
import React, {Component} from 'react';
import {Text,View} from 'react-native';


class SideBarContent extends Component{
    render()
    {
        return(
            <View>
                <Text>Order History</Text>
                <Text>Account</Text>
                <Text>Basket</Text>
                <Text>About us</Text>
            </View>
        );
    }
}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-12 21:36:34

<MainView />实质上是您将在汉堡菜单之前显示的屏幕。

<ControlPanel />是用户单击汉堡包菜单后将显示的侧视图。换句话说,它是实际的侧边菜单。

<Drawer />控制这些视图的打开/关闭、动画、抽屉/侧视图/侧边菜单的其他功能(无论您如何称呼它)。

您仍然需要创建这些视图。我将帮助您展示我的一个应用程序的示例。

我的<MainView/>显示在下面的屏幕上:

我的<ControlPanel />是这样的:

我也使用与您尝试使用的库相同的库。

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2017-03-12 23:06:26

由于我不在系统上,所以没有检查代码的工作,但这应该可以工作。

代码语言:javascript
复制
import Drawer from 'react-native-drawer';
import React, {Component} from 'react';
import SideBarContent from '../common/SideBarContent';
import {Text,View} from 'react-native';

export default class SideBar extends Component{

    constructor(){
        super();
        this.closeControlPanel = this.closeControlPanel.bind(this);
        this.openControlPanel = this.openControlPanel.bind(this);
    }

    closeControlPanel = () => {
        this._drawer.close()
    };
    openControlPanel = () => {
        this._drawer.open()
    };

    render()
    {
        const drawerStyles = {
            drawer: { shadowColor: '#000000', shadowOpacity: 0.8, shadowRadius: 3},
            main: {paddingLeft: 3},
        }

        return (
            <Drawer
                type="static"
                content={<SideBarContent />}
                ref = {(ref) => this._drawer = ref}
                openDrawerOffset={100}
                styles={drawerStyles}
                tweenHandler={Drawer.tweenPresets.parallax}
            >
                <View>
                <Text onPress={this.openControlPanel}>
                    Drawer
                </Text>
                </View>
            </Drawer>
        );
    }
}

另一个文件SideBarContent

代码语言:javascript
复制
 import React, {Component} from 'react';
    import {Text,View} from 'react-native';


    export default class SideBarContent extends Component{
        constructor() {
            super();
        }
        render()
        {
            return(
                <View>
                    <Text>Order History</Text>
                    <Text>Account</Text>
                    <Text>Basket</Text>
                    <Text>About us</Text>
                </View>
            );
        }
    }

如果有任何问题,请告诉我..

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42747087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档