React native TypeError:props.navigation.getParam不是函数。在(props.navigation.getParam(';name';)中
我面临的问题是React native TypeError:props.navigation.getParam不是函数。在(props.navigation.getParam(';name';)中,react-native,react-navigation,React Native,React Navigation,我面临的问题是TypeError:props.navigation.getParam不是函数。在(props.navigation.getParam('name')中。我使用的是reactNavigation 5.x版。此代码在reactNavigation 3中工作。我做错了什么 这是我的密码 export default class ChatScreen extends Component { static navigationOption = ({ navigation }) =>
TypeError:props.navigation.getParam
不是函数。在(props.navigation.getParam('name')
中。我使用的是reactNavigation 5.x版。
此代码在reactNavigation 3
中工作。我做错了什么
这是我的密码
export default class ChatScreen extends Component {
static navigationOption = ({ navigation }) => {
return {
title: navigation.getParam('name', null)
}
}
constructor(props) {
super(props);
this.state = {
person:{
name:props.navigation.getParam('name'),
phone:props.navigation.getParam('phone'),
// name:'Raushan',
// phone:9931428888
},
textMessage: ''
};
}
状态节值出错。
堆栈导航器
`
const Stack=createStackNavigator();
函数App(){
返回(
({title:route.params.name})}/>
);
}
导出默认应用程序;
`
和导航屏幕
onPress={()=>this.props.navigation.navigate('Chat',item)}
可以使用this
关键字访问类内组件props
。请尝试以下操作:
导出默认类ChatScreen扩展组件{
静态导航选项=({navigation})=>{
返回{
标题:navigation.getParam('name',null)
}
}
建造师(道具){
超级(道具);
此.state={
人:{
名称:this.props.navigation.getParam('name'),//使用此项进行访问。
phone:this.props.navigation.getParam('phone'),//使用此访问。
//姓名:'Raushan',
//电话:993142888
},
文本消息:“”
};
}
}
使用props.route.params.name这正在起作用
this.state = {
person:{
name: props.route.params.name,
phone: props.route.params.phone,
},
textMessage: ''
};
是的,我在使用getParam的2、3、4版导航中发现了这一点。 链接如下: 使用导航版本5时,请根据文档使用props.navigation.route.param。
-版本5.大多数情况下,您使用的是最新版本的React Navigation,使用的是相同的旧设置 因此,您要将自定义参数作为导航函数中的第二个参数传递给我,我在这里指出了
:
//索引屏幕:=>
常量索引屏幕=({navigation:{navigate}})=>{
返回(
`${item.id}`}
renderItem={({item})=>(
在此处导航('Previewing',{id:item.id})//
>
{`${item.title}`}
)}
/>
);
};
然后,您将能够通过一个名为params
像这样:
//预览屏幕:=>
常量预览屏幕=({route:{params}})=>{
const{state}=useContext(上下文);
const{id}=params;
返回(
预览id为{id}的帖子
);
};
此屏幕是在堆栈导航器中还是在堆栈导航器外部?是。chatscreen在堆栈导航器中({title:route.params.name})/>onPress={()=>this.props.navigation.navigate('Chat',item)}您是否在构造函数和导航选项中检查了导航的值?检查了react导航版本我认为您使用的是5.x,他们已经更改了此功能。如果您来自v3或v4,请查看此react导航v5有很多突破性的更改。阅读此从4.x升级文档以了解more关于库的详细更改。是否有任何理由使用props.route.params.name而不是这个.props.navigation.getParam(“name”)?@Swift这可能是因为新版本的导航库
this.state = {
person:{
name: props.route.params.name,
phone: props.route.params.phone,
},
textMessage: ''
};