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: ''
};