0
ナビゲーションバー(Android)の左ボタンをクリックしているときにドロワーメニューを開こうとしています。 ReactネイティブでNavigationBar routeMapperに参照を渡す
かなりイライラする「未定義のは( 『_this3.refs.drawer』を評価)オブジェクトではありません」::/
何らかの理由でそれがopenDrawerを呼び出すときに、私はエラーを取得する引用文献を認識しません
routeMapperから引き出しを開くにはどうすればいいですか?
class navigator extends Component {
constructor(props){
super(props);
...
}
renderScene(route, nav){
...
}
static routeMap = drawer => ({
LeftButton(route, navigator, index, navState){
return (
<TouchableHighlight onPress={() => {
this.drawer.openDrawer();
}}>
<Text>MENU</Text>
</TouchableHighlight>
);
},
RightButton(route, navigator, index, navState){
return null;
},
Title(route, navigator, index, navState){
return (
<View style={{flex:1}}>
<Text style={styles.title}>{route.name}</Text>
</View>
)
},
})
render(){
var navigationView = (
<View style={styles.page}>
<ToolbarAndroid style={styles.toolbar}
title="Menu"
titleColor="#FFF" />
<View>
<TouchableHighlight style={styles.button} onPress={() => {
this.nav.push({
name:'Page1',
});
this.drawer.closeDrawer();
}}>
<View>
<Text style={styles.instructions}>
Page 1
</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.button} onPress={() => {
this.nav.push({
name: 'Page2',
});
this.drawer.closeDrawer();
}}>
<View>
<Text style={styles.instructions}>
Page 2
</Text>
</View>
</TouchableHighlight>
</View>
</View>
);
return (
<DrawerLayoutAndroid
drawerWidth={300}
drawerPosition={DrawerLayoutAndroid.positions.Left}
ref={(ref) => this.drawer = ref }
renderNavigationView={() => navigationView}>
<Navigator
initialRoute={{name: 'Page1', index: 0}}
ref = {((nav)=> { this.nav = nav; })}
renderScene={this.renderScene.bind(this)}
configureScene={(route, routeStack) =>
Navigator.SceneConfigs.FloatFromBottomAndroid}
navigationBar={
<Navigator.NavigationBar routeMapper={navigator.routeMap(this.drawer)}
style={styles.toolbar} />
}
/>
</DrawerLayoutAndroid>
);
}
}