Skip to content

React native 实现含有侧滑功能的app,用Listview展示界面,可基于此,开发其他类似侧滑app;含有下拉刷新、上拉加载功能。

Notifications You must be signed in to change notification settings

liuhongjun719/react-native-FoodMenu

Repository files navigation

FoodMenu

React native 实现含有侧滑功能的app,用Listview展示界面,可基于此,开发其他类似侧滑app;含有下拉刷新、上拉加载功能。

Content

Screenshot

image image image

Step

  • step1: 重启终端(以防之前打开过其他项目,会出现错误红屏界面)
  • step2: npm install
  • step3: nmp start

Usage snippets

import React from 'react';
import {
    Navigator,
    View,
    StyleSheet,
    Text,
    DeviceEventEmitter,
    InteractionManager,
} from 'react-native';

import FrontPageContainer from '../containers/FrontPageContainer';
import SideMenu from 'react-native-side-menu';

import LeftMenuContainer from '../containers/LeftMenuContainer';
import Common from '../common/common';


class App extends React.Component {
    render() {

        return (
            <View style={{ flex: 1 }}>
                <Navigator
                    initialRoute={{ name: 'FrontPageContainer', component: FrontPageContainer }}

                    configureScene={(route) => {
                        if (route.sceneConfig) {
                            return route.sceneConfig;
                        }
                        return Navigator.SceneConfigs.FloatFromRight;
                    } }
                    renderScene={(route, navigator) => {
                        let Component = route.component;
                        return (
                            <Component navigator = {navigator} route = {route} {...route.passProps} />
                        )
                    } }
                    />
            </View>
        )
    }
}


class Application extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      isOpen: false,
      openMenuOffset: 0,
    };
}

  componentDidMount() {
    DeviceEventEmitter.addListener('CloseOrOpen', (value) => {
      this.setState({
        isOpen: value,
        openMenuOffset: Common.window.width-100,
      })
    });
    DeviceEventEmitter.addListener('ClickRow', (data) => {
      this.setState({
        isOpen: data.value,
      })
      // TODO: 点击menu中的cell时,在主界面刷新
      InteractionManager.runAfterInteractions(() => {
          DeviceEventEmitter.emit('PushToNextPage', data.month_type);
      });
    });

  }

  componentWillUnmount() {
    DeviceEventEmitter.removeAllListeners('CloseOrOpen');
  }


  _closeOrOpenRight() {

  }


  render() {
    const menu =      <Navigator
                        initialRoute={{ name: 'LeftMenuContainer', component: LeftMenuContainer }}

                        configureScene={(route) => {
                            if (route.sceneConfig) {
                                return route.sceneConfig;
                            }
                            return Navigator.SceneConfigs.FloatFromRight;
                        } }
                        renderScene={(route, navigator) => {
                            let Component = route.component;
                            return (
                                <Component navigator = {navigator} route = {route} {...route.passProps} />
                            )
                        } }
                        />
    return (
      <SideMenu menu={menu}
       isOpen = {this.state.isOpen}
       openMenuOffset = {Common.window.width-100}
       edgeHitWidth = {300}
       >
        <App/>
      </SideMenu>
    );
  }
}

export default Application;

Relevant Projects of React Native

About

React native 实现含有侧滑功能的app,用Listview展示界面,可基于此,开发其他类似侧滑app;含有下拉刷新、上拉加载功能。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published