无法在DrawerLayoutAndroid中调用openDrawer(),react-native

时间:2018-04-18 12:54:07

标签: javascript android react-native jsx

我是反应原生的新手。我尝试做的是在屏幕上放一个抽屉,用"菜单"打开它。工具栏中的按钮。 我知道我必须使用回调函数,我之前搜索了很多主题和相关问题,例如this one,但我无法做到。几乎疯了。这是我的代码:



/**
 * @flow
 */

const React = require('react');
const ReactNative = require('react-native');

const { View, Text, DrawerLayoutAndroid } = ReactNative;


class Profile extends React.Component<{}> {
  static navigationOptions = {
    title: 'Profile',
    headerRight: <Text>Menu</Text>,
  };

  constructor() {
    super();
    this.openDrawer = this.openDrawer.bind(this);
  }
  openDrawer() {
    this.ref.drawer.openDrawer();
  }

  render() {
    const navigationView = (
      <View style={{ flex: 1, backgroundColor: '#fff' }}>
        <Text style={{ margin: 10, fontSize: 15, textAlign: 'left' }}>Im in the Drawer!</Text>
      </View>
    );
    return (
      <DrawerLayoutAndroid
        drawerWidth={300}
        drawerPosition={DrawerLayoutAndroid.positions.Left}
        renderNavigationView={() => navigationView}
        ref={(_drawer) => {
          this.drawer = _drawer;
        }}
      >
        <View style={{ flex: 1, alignItems: 'center' }}>
          <Text style={{ margin: 10, fontSize: 15, textAlign: 'right' }}>Hello</Text>
          <Text
            style={{ margin: 10, fontSize: 15, textAlign: 'right' }}
            onPress={this.openDrawer()}
          >
            World!
          </Text>
        </View>
      </DrawerLayoutAndroid>
    );
  }
}

export default Profile;
&#13;
&#13;
&#13;

每次运行代码时,我都会得到&#34; undefined不是对象&#34;。

此外,我不知道如何将openDrawer()放入static navigationOptions

非常感谢帮助!

0 个答案:

没有答案