2017-10-17 6 views
0

私はreact-native-drawer-menuを使ってスライダーメニューを作成しています。ボタンをクリックしたときに手動でメニューを開くことができません。ドキュメントでは、これは、refを使用してインスタンスを呼び出すことによって実行できると述べました。refを使用してインスタンスメソッドを呼び出す

これは私のコード

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は関数ではなく です。あなたは引き出しへのREF( "参照")を格納する必要が

+0

[Refs and the DOM](https://reactjs.org/docs/refs-and-the-dom.html)を使用するためのリアクションのドキュメント – bennygenel

答えて

2

( 'において_reactNativeDrawerMenu2.default.openDrawer()'、 '_reactNativeDrawerMenu2.default.openDrawer' 未定義です)。

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

をして、あなたのような彼らのAPIを使用することができます。

だから、次のようになります。私は、これはモジュールのAPIある以外、@lippが言ったように、それは

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> 
    } 
} 
+0

@danielに感謝!これを修正しました。 – lipp

0

されるべきだと思います。

this.drawer.open()

関連する問題