navigation - 我想从一个屏幕导航到另一个屏幕,但我有 undefined is not an object(评估'this.props.navigation.navigate')
问题描述
我想从导航抽屉的一个屏幕导航到另一个屏幕,但出现错误
类型错误:未定义不是对象(评估“this.props.navigation.navigate”)
不知道为什么?
这是我的代码:
import React, { useState } from 'react';
import { View } from 'react-native';
import { Drawer, Appbar, Divider } from 'react-native-paper';
import style from './menu.style';
import popularposts from './popularposts';
export default Menu = ({onMenuToggle, options, navigation}) => {
const [active, setActive] = useState('home');
const {navigate} = this.props.navigation;
return (
<View style={style.container}>
<Appbar.Header>
<Appbar.Content></Appbar.Content>
<Appbar.Action icon="close" onPress={onMenuToggle} />
</Appbar.Header>
<Drawer.Section>
<Drawer.Item
label="Popular Post"
active={active === 'first'}
onPress={() => navigate('popularposts')}
/>
<Drawer.Item
label="Important Dates/ Events"
active={active === 'second'}
onPress={() => { setActive('second'); }}
/>
<Divider />
<Drawer.Item
label="SIGN OUT"
active={active === 'fourth'}
onPress={() => { setActive('fourth'); }}
/>
</Drawer.Section>
</View>
)
}
解决方案
采用
const {navigate} = navigation;
代替
const {navigate} = this.props.navigation;
推荐阅读
- java - Java绘制生涩动画
- flutter - 有没有办法避免在构建颤振的 android 项目时调用 dl.google.com 和 maven?
- python-3.x - python gzip模块有时会写入尾随字节
- typescript - 如何根据 NestJs 上的请求实现模式设计
- c# - 动态 IEnumerable
- python - 根据多个条件添加新的计算列
- python - 将列表中的最高值和最低值添加到单独的列表中,而不使用 max 和 min
- angular - 在springboot中将post请求中的对象从角度发送到后端的问题
- javascript - 我无法将参数传递给外部函数以呈现消息,TypeError: Class constructor AlertMessage cannot be invoked without 'new'
- string - 如何从 Fortran 中的另一个字符串中删除特定字符串?