显示我的 DrawerLayoutAndroid ,来自 NavigationBarRouteMapper 的 onPress (rightButton)

IT技术 reactjs react-native
2022-08-02 00:01:44

所以我有一个非常小的问题......

我有一个<DrawerLayoutAndroid>和一个Navigator,从我的右侧按钮var NavigationBarRouteMapper,我想展示抽屉......基础知识!但是当我点击时,什么都没有完成....


我试过这个,但它的配置不一样,对我不起作用....

这个 refs 在方法中变得未定义


这是我的 NavigationBarRouteMapper :

var NavigationBarRouteMapper = { LeftButton(route, navigator, index, navState) { return (*something*); }, RightButton(route, navigator, index, navState) { return( <TouchableOpacity style={{flex: 1, justifyContent: 'center'}}> <Icon.Button name="bars" color="white" backgroundColor="#246dd5" onPress={this.openDrawer}/> </TouchableOpacity>); }, Title(route, navigator, index, navState) { return (*something*); } };


而且我的 NavigationBarRouteMapper 有效,因为 leftButton 有效(我没有在此处粘贴代码),所以这只是从 RightButton 对 OnPress() 的调用,我没有成功...

这是我的 DrawerDeclaration :

<DrawerLayoutAndroid drawerWidth={300} ref={'DRAWER_REF'} navigator={Navigator.SceneConfigs.HorizontalSwipeJump} drawerPosition={DrawerLayoutAndroid.positions.Left} renderNavigationView={() => navigationView}> </DrawerLayoutAndroid>


最后我的函数调用:

openDrawer:function() { this.refs['DRAWER_REF'].openDrawer(); },


注意:当我this.refs['DRAWER_REF'].openDrawer();在我的class里做的时候,它正在工作,但 NavigationRouteMapper 当然不在里面:) 所以它实际上只是我的class和 NavigationBarRouteMapper 之间的链接......

感谢红它!

1个回答

知道了 !!!!

我只需要<DrawerLayoutAndroid>在渲染方法中声明我的而不是在渲染()中的另一个方法调用中声明它......所以它给出了这个......:

render: function() {
var navigationView = ( <View style={{flex: 1, backgroundColor: '#fff'}}> <Text style={{margin: 10, fontSize: 15, textAlign: 'left'}}>I'm in the Drawer!</Text> </View> ); return( <DrawerLayoutAndroid drawerWidth={300} ref={'drawer'} navigator={Navigator.SceneConfigs.HorizontalSwipeJump} drawerPosition={DrawerLayoutAndroid.positions.Left} renderNavigationView={() => navigationView}> <Navigator /****/ /> </DrawerLayoutAndroid> ); },

:) !