Android 无法在组件中使用抽屉方法openDrawer()

Android 无法在组件中使用抽屉方法openDrawer(),android,reactjs,react-native,Android,Reactjs,React Native,我正在android中使用react native实现抽屉,并尝试为抽屉菜单代码和抽屉内容代码创建不同的文件。为了做到这一点,我用不同的方式创建了react组件。我可以做这些文件中的所有工作,但我需要抽屉引用来执行组件文件中抽屉的一些操作。这是我的代码,如何将drawer的引用传递给其他组件文件,以使用类似openDrawer()的drawer方法 “严格使用”; var React=require('React-native'); var{View, 样式表, 触控高光, }=反应; var

我正在android中使用react native实现抽屉,并尝试为抽屉菜单代码和抽屉内容代码创建不同的文件。为了做到这一点,我用不同的方式创建了react组件。我可以做这些文件中的所有工作,但我需要抽屉引用来执行组件文件中抽屉的一些操作。这是我的代码,如何将drawer的引用传递给其他组件文件,以使用类似openDrawer()的drawer方法

“严格使用”;
var React=require('React-native');
var{View,
样式表,
触控高光,
}=反应;
var DrawerLayout=require('react-native-drawer-layout');
var抽屉屏幕=要求(“./抽屉屏幕”);
var DrawerMenu=require('./DrawerMenu');
var DrawerLayoutExample=React.createClass({
render:function(){
var navigationView=(
);
返回(
this.setState({drawerSlideOutput:JSON.stringify(e.nativeEvent)})
onDrawerStateChanged={(e)=>this.setState({drawerStateChangedOutput:JSON.stringify(e)})
抽屉宽度={200}
ref={(抽屉)=>{返回this.drawer=drawer}}
keyboardDismissMode=“拖动时”
renderNavigationView={()=>navigationView}>
//这里是抽屉的内容组件,需要参考抽屉参考
);
}
});
var styles=StyleSheet.create({
容器:{
对齐项目:“居中”,
为内容辩护:“中心”,
弹性:1,
flexDirection:'列',
},
});
module.exports=DrawerLayoutExample;
DropersScreen.js

'use strict';
var React = require('react-native');
var {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Dimensions,
  Image,
  TouchableHighlight,
  TextInput,
} = React;

var deviceWidth = Dimensions.get('window').width;

var DrawerScreen = React.createClass({


  render: function() {
    return (

        <View style={styles.container}>

          <Text style={styles.welcome}>Content!</Text>

          <TouchableHighlight onPress={() => this.state.openDrawer()}>
            <Text>Open drawer</Text>
          </TouchableHighlight>
          <TextInput style={styles.inputField} />
        </View>
    );
  },

});

var styles = StyleSheet.create({
   container: {
      alignItems: 'center',
      justifyContent: 'center',
      flex: 1,
          flexDirection: 'column',
    },
    inputField: {
      backgroundColor: '#F2F2F2',
      height: 40,
    },
});

module.exports = DrawerScreen;
“严格使用”;
var React=require('React-native');
变量{
评估学,
样式表,
文本,
看法
尺寸,
形象,,
触控高光,
文本输入,
}=反应;
var deviceWidth=Dimensions.get('window').width;
var DrawerScreen=React.createClass({
render:function(){
返回(
内容!
this.state.openDrawer()}>
打开抽屉
);
},
});
var styles=StyleSheet.create({
容器:{
对齐项目:“居中”,
为内容辩护:“中心”,
弹性:1,
flexDirection:'列',
},
输入字段:{
背景颜色:'#f2f2',
身高:40,
},
});
module.exports=抽屉屏幕;

我想问题是,您使用了
this.state.openDrawer()
给抽屉打电话

试用
this.drawer.openDrawer()


希望这有帮助我想问题是,你用了
this.state.openDrawer()
给抽屉打电话

试用
this.drawer.openDrawer()

希望这有帮助

'use strict';
var React = require('react-native');
var {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Dimensions,
  Image,
  TouchableHighlight,
  TextInput,
} = React;

var deviceWidth = Dimensions.get('window').width;

var DrawerScreen = React.createClass({


  render: function() {
    return (

        <View style={styles.container}>

          <Text style={styles.welcome}>Content!</Text>

          <TouchableHighlight onPress={() => this.state.openDrawer()}>
            <Text>Open drawer</Text>
          </TouchableHighlight>
          <TextInput style={styles.inputField} />
        </View>
    );
  },

});

var styles = StyleSheet.create({
   container: {
      alignItems: 'center',
      justifyContent: 'center',
      flex: 1,
          flexDirection: 'column',
    },
    inputField: {
      backgroundColor: '#F2F2F2',
      height: 40,
    },
});

module.exports = DrawerScreen;