如何修复undefined不是一个对象 - 'this.navigation.openDrawer'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修复undefined不是一个对象 - 'this.navigation.openDrawer'相关的知识,希望对你有一定的参考价值。
出于某种原因,当您点击开始菜单时出现错误,我不清楚为什么会发生这种情况。
“react-navigation”:“^ 3.5.1”
这是用于按下打开我的菜单抽屉。
```
import React, { Component } from 'react';
import { Text, View, Image } from 'react-native';
import { Avatar } from 'react-native-elements';
import { Left, Icon } from 'native-base';
import { DrawerActions } from 'react-navigation';
class Header extends Component {
render() {
return (
<View style={styles.viewStyle}>
<Left>
<Icon
name='menu'
style={styles.menu}
onPress={() => this.props.navigation.openDrawer()}
/>
</Left>
<Text style={styles.textStyle}>Episodes</Text>
</View>
);
}
}
export default Header;
```
```
import React, { Component } from 'react';
import { View, Text, StyleSheet, Image } from 'react-native';
import { Right, Left, Icon } from 'native-base';
import EpisodeList from '../components/EpisodeList';
import Header from '../components/header';
class HomeScreen extends Component {
static navigationOptions = {
drawerIcon: ({ tintColor }) => (
<Icon name='home' style={{ fontSize: 24, color: tintColor }} />
)
};
render() {
return (
<View style={styles.container}>
<Header />
<View>
<Image
source={{
uri:
'https://images.pexels.com/photos/754082/pexels-photo-754082.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260'
}}
style={{ width: 400, height: 700, position: 'absolute' }}
/>
<EpisodeList />
</View>
</View>
);
}
}
export default HomeScreen;
```
我希望当我按下菜单按钮时抽屉会打开
标头是我传递到另一个组件的组件,它从那里激活。
答案
您需要将导航道具传递给子组件才能使用此类功能。
<Header navigation={this.props.navigation} />
或者在头文件中执行此操作,
import {withNavigation} from "react-navigation";
....
...
...
export default withNavigation(Header);
另一答案
你试过以下吗?
this.props.navigation.dispatch(DrawerActions.openDrawer());
别忘了导入,
import { DrawerActions } from "react-navigation";
另一答案
请在您的HomeScreen中试试这个
<Header {...this.props}/>
以上是关于如何修复undefined不是一个对象 - 'this.navigation.openDrawer'的主要内容,如果未能解决你的问题,请参考以下文章
undefined 不是对象(评估 'RCTToastAndroid.SHORT')
js 如何同时判断 某个变量不是 undefined 也不是 null也不是 空啊
如何修复 UnhandledPromiseRejectionWarning: CastError: Cast to number failed for value "undefined&qu
如何修复Laravel 5.2中的“Undefined variable:subtask”
如何修复''UnicodeDecodeError:'charmap'编解码器无法解码位置29815中的字节0x9d:字符映射到<undefined>''?