Skip to content

Missing swipe-to-back #197

@somename85

Description

@somename85

Hi,
I tried to use react-native-drawer with Navigator and got missing swipe-to-back functionality.
Can you help me? What am I doing wrong?

here is simple example

import React, {Component} from 'react';
import {Text, Navigator, TouchableOpacity, AppRegistry, View} from 'react-native';
import Drawer from 'react-native-drawer'

const ControlPanel = () => {
  return <View  style={{backgroundColor: 'blue', flex: 1}}>
    <View>
      <Text>
        0
      </Text>
    </View>
    <View>
      <Text>
        1
      </Text>
    </View>
    <View>
      <Text>
        2
      </Text>
    </View>
    <View>
      <Text>
        3
      </Text>
    </View>
  </View>
};

const routeMapper = {
  LeftButton(route, navigator, index, navState) {
    return <TouchableOpacity onPress={navigator.pop}>
      <Text>
        back
      </Text>
    </TouchableOpacity>;
  },
  RightButton: () => null,
  Title(route, navigator, index, navState) {
    return <Text>
      {route.title}
    </Text>;
  }
};

const Page0 = ({
  route, navigator
}) => <View style={{flex: 1, backgroundColor: 'red', justifyContent: 'center'}}>
  <Text>
    Page #0
  </Text>
  <TouchableOpacity onPress={() => navigator.push(routes[1])}>
    <Text>
      Click me
    </Text>
  </TouchableOpacity>
</View>;

const Page1 = ({
  route, navigator
}) => <View style={{flex: 1, backgroundColor: 'green', justifyContent: 'center'}}>
  <Text>
    Page #1
  </Text>
</View>;

const routes = [
  {
    title:     'First Scene',
    index:     0,
    component: Page0
  },
  {
    title:     'Second Scene',
    index:     1,
    component: Page1
  }
];

class NavAllDay extends Component {
  _renderScene(route, navigator) {
    var Component = route.component;
    return (
      <Component {...route.props} navigator={navigator}/>
    );
  }

  renderNav() {
    return <Navigator.NavigationBar
      routeMapper={routeMapper}
      style={{backgroundColor: 'gray'}}
    />
  }

  render() {
    return <Drawer
      content={<ControlPanel />}
      openDrawerOffset={.33}
      panOpenMask={.5}
      tapToClose
    >
      <Navigator
        initialRoute={routes[0]}
        initialRouteStack={routes}
        renderScene={this._renderScene}
        navigationBar={this.renderNav()}
      />
    </Drawer>;
  }
}

AppRegistry.registerComponent('rocket_mobile', () => NavAllDay);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions