React native 类型为“boolean”的属性“onPress”无效`

React native 类型为“boolean”的属性“onPress”无效`,react-native,react-navigation,expo,React Native,React Navigation,Expo,我正在制作react native expo应用程序,我有一个问题。 我有两页。在page1.js中,我设置了page2.js的标题,我对此有一些问题。我有TouchableOpacity,在这里我导航到另一个页面,并在那个里设置createStackNavigator选项的标题。在createStackNavigator选项中,我获得已发送的标题。这给了我一个错误: 警告:失败的道具类型:提供给TouchableOpacity的boolean类型的无效道具onPress,应为功能。 还有一点:

我正在制作react native expo应用程序,我有一个问题。 我有两页。在page1.js中,我设置了page2.js的标题,我对此有一些问题。我有TouchableOpacity,在这里我导航到另一个页面,并在那个里设置createStackNavigator选项的标题。在createStackNavigator选项中,我获得已发送的标题。这给了我一个错误: 警告:失败的道具类型:提供给
TouchableOpacity
boolean
类型的无效道具
onPress
,应为
功能
。 还有一点: this.props.onPress不是一个函数

我做错了什么? 代码:

//page1.js
从“React”导入React,{Component};
从“react native”导入{样式表、视图、按钮、图像、文本、TouchableOpacity、ScrollView、SafeAreaView、ActivityIndicator};
从“反应导航”导入{Header};
从“react navigation”导入{createStackNavigator,createAppContainer};
从“反应本机矢量图标/Ionicons”导入图标
从“../components/CoursesPlan”导入CoursesPlan
const title=“a”;
setTitle=(数据)=>{
标题=数据;
}
getTitle=()=>{
返回标题;
}
类Page1扩展组件{
render(){
返回(
setTitle(“标题”),
this.props.navigation.navigate('CourseOne'{
id:1,
})}>
);
}
}
导出默认createStackNavigator({
主要内容:{
屏幕:主,
导航选项:{
标题:null,
},
},
第1页:{
屏幕:第1页,
导航选项:({navigation})=>({
headerTitle:getTitle(),
头型:{
海拔:0,
边界宽度:1,
borderBottomColor:#dddddd“,
},
}),
},},{
initialRouteName:'Main',
}

);
您没有为onPress提供函数,因为您没有将它用大括号括起来

为您的
onPress
功能尝试以下操作:

onPress={() => {
    setTitle("title");
    this.props.navigation.navigate('CourseOne', { id: 1,});
}}>

首先,为什么要修改常量

你不能像那样改变头绪

请参阅react导航文档

如果不使用this.state,getTitle()将不会重新呈现视图

您使用this.props,但尚未编写构造函数


类测试扩展了组件{
构造器(道具){
超级(道具)
}
render(){
返回()
}
 } 

class Test extends Component {

   constructor(props) { 
      super(props)
   }

   render() {
      return(<View />)
   }
 }