Javascript 未定义';this.props.navigation.state.props.p';导航反应本机

Javascript 未定义';this.props.navigation.state.props.p';导航反应本机,javascript,reactjs,react-native,navigation,Javascript,Reactjs,React Native,Navigation,我已经阅读了关于这个问题的所有其他主题,但没有人能解决我的问题 我不知道为什么,但当我尝试导航时,我无法传递道具来反应导航,我总是会遇到以下错误: “未定义'this.props.navigation.state.props.p'” 这是我的代码: 从“React”导入React 从“react native”导入{View,Text,ActivityIndicator,StyleSheet} 从“firebase”导入*作为firebase; 常量配置={ apiKey:“Aizasybef

我已经阅读了关于这个问题的所有其他主题,但没有人能解决我的问题

我不知道为什么,但当我尝试导航时,我无法传递道具来反应导航,我总是会遇到以下错误:

“未定义'this.props.navigation.state.props.p'”

这是我的代码:

从“React”导入React
从“react native”导入{View,Text,ActivityIndicator,StyleSheet}
从“firebase”导入*作为firebase;
常量配置={
apiKey:“Aizasybefor40N7VP1XU9EDL8PEOFQ3UAFKQ314”,
authDomain:“anylibrary-961e1.firebaseapp.com”,
数据库URL:“https://anylibrary-961e1.firebaseio.com",
projectId:“anylibrary-961e1”,
storageBucket:“anylibrary-961e1.appspot.com”,
messagingSenderId:“482573837189”
};
导出默认类加载扩展React.Component{
静态导航选项={
标题:null,
};
建造师(道具){
超级(道具);
}
组件willmount(){
如果(!firebase.apps.length){
firebase.initializeApp(配置);
}
}
componentDidMount(){
firebase.auth().onAuthStateChanged(用户=>{
const{navigate}=this.props.navigation;
如果(用户){
导航('UserArea',{p:'Profile'});
}否则{
导航(“主页”);
}
})
}
render(){
返回(
加载。。。
);
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
为内容辩护:“中心”,
对齐项目:“居中”,
}

})
从文档中可以看出,这似乎是获取路由参数的正确方法

this.props.navigation.state.params.p

从文档中可以看出,这似乎是获取路由参数的正确方法

this.props.navigation.state.params.p
试试这个:

 page: this.props.navigation.state.p
我建议您使用getParam-使用回退获取特定的param值

const name = this.props.navigation.getParam('name', 'Peter');
如果名称或参数未定义,请将回退设置为Peter。

尝试以下方法:

 page: this.props.navigation.state.p
我建议您使用getParam-使用回退获取特定的param值

const name = this.props.navigation.getParam('name', 'Peter');

如果名称或参数未定义,则将回退设置为Peter。

旧方法为

this.props.navigation.state.params

新方法是

this.props.route.params

im使用rn版本0.62,
反应导航版本-5

旧方法是

this.props.navigation.state.params

新方法是

this.props.route.params

im使用rn版本0.62,
react导航版本-5

如果使用react导航v5,请使用

const data = route.params?.someParam ?? 'defaultValue';

如果使用react navigation v5,请使用

const data = route.params?.someParam ?? 'defaultValue';

也许你的链条中有一个元素是空的,一切正常,没有任何东西看起来是空的。如果我不想传递道具,我直接输入“page:'Profile'”,一切正常……你试过从构造函数中删除这个吗<代码>页面:props.navigation.state.props.p,也许您的链中有一个元素为空。一切正常,似乎没有任何内容为空。如果我不想传递道具,我直接输入“page:'Profile'”,一切正常……你试过从构造函数中删除这个吗<代码>页面:props.navigation.state.props.p,它是“p”某个保留字吗?或我把它改成了“我的页面”,现在它可以正常工作了。。。但我仍然不明白为什么它以前不工作…它不是一个保留字,也许你的代码中有一些其他错误:)它是“p”某个保留字吗?或我把它改成了“我的页面”,现在它可以正常工作了。。。但是我仍然不明白为什么它以前不起作用……它不是一个保留字,也许你的代码中有其他错误:)我尝试了所有可能的方法从文档和其他关于这个错误的主题中获取参数。就像我上面说的,通过改变道具的名称解决了这个问题,没有意义,但效果很好,谢谢大家!我尝试了所有可能的方法从文档和其他关于这个错误的主题中获取参数。就像我上面说的,通过改变道具的名称解决了这个问题,没有意义,但效果很好,谢谢大家!