使用ref调用实例方法

时间:2017-10-17 11:24:57

标签: reactjs react-native

我正在使用react-native-drawer-menu创建滑块菜单。单击按钮时,我无法手动打开菜单。在文档中,他们说这可以通过使用ref来调用方法openDrawer来实现。

这是我的代码

import Drawer from 'react-native-drawer-menu'

  myFunction(){
    Drawer.openDrawer();
  }

我收到此错误

  

reactNativeDrawerMenu2.default.openDrawer不是一个函数。 (在   '_reactNativeDrawerMenu2.default.openDrawer()',   '_reactNativeDrawerMenu2.default.openDrawer'未定义)2017-10-17   13:16:24.299 [致命] [tid:com.facebook.react.ExceptionsManagerQueue]   未处理的JS异常:_reactNativeDrawerMenu2.default.openDrawer是   不是一个功能。 (在'_reactNativeDrawerMenu2.default.openDrawer()'中,   '_reactNativeDrawerMenu2.default.openDrawer'未定义)

2 个答案:

答案 0 :(得分:2)

您需要将ref(“reference”)存储到抽屉中。我认为应该是

import Drawer from 'react-native-drawer-menu'

class Foo extends React.Component {
  render () {
    return (
      <Drawer ref={drawer => this.drawer = drawer}>
        <View>
          <Button onPress={() => this.drawer.open()}
        </View>
      </Drawer>
  }
}

答案 1 :(得分:0)

正如@lipp所说,除了这是模块的API

所以它变成了:

<Drawer ref={(node) => {this.drawer = node;}} />

然后您可以使用他们的API,如:

  

this.drawer.open()