2017-02-22 37 views
1

有人可以告诉我这段代码有什么问题吗?当我运行模拟器时,它运行良好,但是当我滑动显示内容时,它不会显示出来。抽屉不会工作。我究竟做错了什么?NativeBase抽屉刷卡不工作

import React, { Component } from 'react'; 
import { Drawer } from 'native-base'; 
import { Navigator, View } from 'react-native'; 

export default class DrawerExample extends Component { 

constructor(props) { 
super(props); 
this.state = { 
toggled: false, 
store: {}, 
theme: null 
}; 
} 

toggleDrawer() { 
this.state.toggled ? this._drawer.close() : this._drawer.open(); 
} 

openDrawer() { 
this.setState({toggled: true}); 
} 

closeDrawer() { 
this.setState({toggled: false}); 
} 

renderScene(route, navigator) { 
switch(route) { 
    default: return null; 
} 
} 
configureScene(route, routeStack) { 
return Navigator.SceneConfigs.PushFromRight; 
} 
render() { 
return (
    <Drawer 
     ref={(ref) => this._drawer = ref} 
     type='displace' 
     content={<View style={{backgroundColor: '#000', height: 1000}} />} 
     onClose={this.closeDrawer.bind(this)} 
     onOpen={this.openDrawer.bind(this)} 
     openDrawerOffset={100} 
     > 
     <Navigator 
      ref={(ref) => this._navigator = ref} 
      configureScene={this.configureScene.bind(this)} 
      renderScene={this.renderScene.bind(this)} 
     /> 
     </Drawer> 
    ); 
     } 
     } 

回答

6

您可以通过panOpenMask={<value>}实现此目的。 我测试了它的值为.25

API说:

panOpenMask(数字)null - 屏幕宽度的比例,其有效期为 锅开行动的开始。如果空 - >默认为max(.05, closedDrawerOffset)

编辑:

我完整的代码(在我自己的项目)是:

<Drawer 
    ref={(ref) => { this._drawer = ref; }} 
    content={ navigationView } 
    side="right" 
    panOpenMask={.25} 
> 
+1

太好了!由于我的样板文件,我曾在我的项目中使用'acceptPan = {false}'。我将其改为“真实”,现在我可以通过滑动打开/关闭抽屉。谢谢。 – milkersarac

+0

不知道那个。我可能也会做这个开关。我宁愿有一个bool而不是像'.25'这样的随机数字。干杯〜 – Ethan

+0

你能告诉我在文档中它解释了这一点吗?我努力了这一点,并在审阅文档后发现了这篇文章。我没有看到有关panOpenMask的任何信息。 https://docs.nativebase.io/COMPONENTS.html#Drawer – Aaron