【发布时间】:2020-08-12 06:30:31
【问题描述】:
我正在使用 react native 类组件,并且正在使用 react-navigation 在应用程序中进行路由。该指南主要针对功能组件,我正在尝试使用类组件来实现它。但是当我试图从 reactnavigation 中获取它时,它总是会抛出导航不是函数或未定义的错误。如果这是一个已经被问到的问题,我很抱歉,因为我对这个 react native 真的很陌生。
类组件
import React from 'react';
import { useNavigation } from '@react-navigation/native';
import { Button, Divider, Layout, TopNavigation ,Card,Text} from '@ui-kitten/components';
class HomeScreen extends React.Component {
navigateDetails(navigation) {
debugger
navigation('Details');
};
constructor(props) {
super(props);
console.log(this.props);
this.state = { hover: false };
}
render() {
const navigation = this.props;
return(
<Button onPress={this.navigateDetails}>OPEN DETAILS</Button>
);
}
}
export default function (props) {
const navigation = useNavigation();
return <HomeScreen {...props} navigation={navigation} />;
}
【问题讨论】:
-
将
onPress函数改为<Button onPress={this.props.navigation.navigate('Details')}> -
@SDushan 我试图使用包装函数来实现这一点。似乎我必须将该导航作为变量传递给函数才能工作。 onPress={()=>this.navigateDetails(navigation)} 谢谢您的评论和详细信息
-
由于您已经在类组件中,您可以直接访问导航道具并且不必将
navigation作为参数传递。
标签: reactjs react-native react-navigation react-native-navigation react-component