Reactjs 导航-无法读取属性';导航';未定义的

Reactjs 导航-无法读取属性';导航';未定义的,reactjs,react-native,navigation,Reactjs,React Native,Navigation,我尝试在登录函数之后在“主页”路径上导航,并尝试在登录中集成导航函数,但出现错误“无法读取未定义错误的属性”“导航” loginUser = (email, password) => { try { firebase .auth() .signInWithEmailAndPassword(email, password) .then(function(user) {

我尝试在登录函数之后在“主页”路径上导航,并尝试在登录中集成导航函数,但出现错误“无法读取未定义错误的属性”“导航”

loginUser = (email, password) => {
    try {
        firebase
            .auth()
            .signInWithEmailAndPassword(email, password)
            .then(function(user) {
                this.props.navigation.navigate("Home");
            });
    } catch (error) {
        console.log(error.toString());
    }
};
我还尝试使用
()=>this.props.navigation.navigate(“Home”)但什么也没发生

我的路线运行良好,因为如果我创建一个带有onPress功能的简单按钮,它运行良好

this.props.navigation.navigate(“登录”)}/>

你能给我一些提示吗?在react native中成功登录后,如何导航到主页

提前谢谢你

尝试console.log(这个)。我认为因为您在promise中创建了一个新函数,所以这个函数的范围已经更改。试试看

loginUser=(电子邮件、密码)=>{
让那=这;
试一试{
火基
.auth()
.使用电子邮件和密码登录(电子邮件、密码)
.then(功能(用户){
那。道具。导航。导航(“家”);
});
}捕获(错误){
log(error.toString());
}
};

尝试console.log(这个)。我认为因为您在promise中创建了一个新函数,所以这个函数的范围已经更改。试试看

loginUser=(电子邮件、密码)=>{
让那=这;
试一试{
火基
.auth()
.使用电子邮件和密码登录(电子邮件、密码)
.then(功能(用户){
那。道具。导航。导航(“家”);
});
}捕获(错误){
log(error.toString());
}
};

当您在承诺链中使用function(){}语法与arrow函数语法时,您正在更改this(在this.props中)的词法范围

如果将函数更改为箭头函数,则将保留外部作用域,并可以访问此作用域

e、 g


当您在承诺链中使用function(){}语法与arrow函数语法时,您正在更改this(在this.props中)的词法范围

如果将函数更改为箭头函数,则将保留外部作用域,并可以访问此作用域

e、 g


是<代码>登录用户
是redux的操作吗?是<代码>登录用户是redux的操作吗?是redux的操作吗?是感谢您的回答。我已经试过了,但是现在我得到了“还没有定义”谢谢你的回答。我已经尝试过了,但是现在我得到了“这还没有定义”的消息,谢谢@codi05ro-不幸的是,我真的需要更多地查看您的代码。你能具体说明什么是未定义的吗?如果你在loginUser方法的第一线使用console.log(this.props),你能在那里看到导航吗?谢谢@codi05ro-不幸的是,我真的需要看到更多你的代码。你能具体说明什么是未定义的吗?如果您在loginUser方法的第一行上使用console.log(this.props),您能在那里看到导航吗?
.then((user) => {
   that.props.navigation.navigate("Home");
});