繁体   English   中英

Native Base Drawer 不工作

[英]Native Base Drawer not working

我试图在我的本机应用程序中创建抽屉。 我已经按照给出的示例进行操作,但仍然无法让我打开抽屉。

以下是我的代码:

 #drawer.js export default class TalentDrawer extends Component { closeDrawer = () => { this.drawer._root.close() }; openDrawer = () => { this.drawer._root.open() }; render() { return ( <Drawer ref={(ref) => { this.drawer = ref; }} content={<Sidebar/>} panOpenMask={0.80} onClose={this.closeDrawer.bind(this)} onOpen={this.openDrawer.bind(this)} captureGestures="open" side="right" > <Dashboard openDrawer={this.openDrawer.bind(this)}/> </Drawer> ); } }

 #dashboard.js export default class Dashboard extends Component { render() { return ( <View style={{flex:1, alignItems:'center', justifyContent: 'center'}}> <Button onPress={()=>this.props.openDrawer()}> <Text>Hello</Text> </Button> </View> ); } }

我也遵循Github问题的说明,但仍然无法让这个抽屉为我工作。 有人和我有同样的问题吗? 本机基础网站上给出的示例未显示完整的工作示例。

需要对代码进行一些更改,

由于dashboard.js 不处理状态,我们可以将类更改为函数。

抽屉.js

 export default class TalentDrawer extends Component { closeDrawer = () => { this.drawer._root.close() }; openDrawer = () => { this.drawer._root.open() }; render() { return ( <Drawer ref={(ref) => { this.drawer = ref; }} content={<Sidebar/>} panOpenMask={0.80} onClose={this.closeDrawer} onOpen={this.openDrawe} captureGestures="open" side="right" > <Dashboard openDrawer={this.openDrawer}/> </Drawer> ); } }

仪表板.js

 const Dashboard = (props) => { return ( <View style={{flex:1, alignItems:'center', justifyContent: 'center'}}> <Button onPress={props.openDrawer}> <Text>Hello</Text> </Button> </View> ); } }

你应该做

closeDrawer = () => {
  this.refs.drawer.close()
};
openDrawer = () => {
  this.refs.drawer.open()
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM