无法读取undefined的属性'navigation' - 做出本机反应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法读取undefined的属性'navigation' - 做出本机反应相关的知识,希望对你有一定的参考价值。

我正在开发一个反应原生应用程序。在那个应用程序当我调用以下函数时,我收到一个错误

无法读取undefined的属性'navigation'

      handleForgotPassword = (email) => {
        firebase.auth().sendPasswordResetEmail(email)
        .then(function (user) {
          console.log("Inner");
          this.props.navigation.navigate("Login") //not working
        }).catch(function (e) {
          console.log(e)
        })

      }

但在同一页面上,我使用以下代码,它工作正常。

<TouchableOpacity onPress={() => this.props.navigation.navigate("Login")}> //but this is working
      <Image  source={require('../src/Assets/close.png')} />
      </TouchableOpacity> 

谁能告诉我这是什么问题

答案

匿名函数有它自己的上下文(这就是未定义导航的原因)......但是箭头函数会自动绑定到它的父元素

       firebase.auth().sendPasswordResetEmail(email)
        .then((user) =>  {
          console.log("Inner");
          this.props.navigation.navigate("Login") // Will work
        })

以上是关于无法读取undefined的属性'navigation' - 做出本机反应的主要内容,如果未能解决你的问题,请参考以下文章

无法读取undefined的属性'navigate' - React Native

TypeError:无法读取undefined的属性'gmail'

Ionic3测试:TypeError:无法读取undefined的属性'subscribe'

无法读取undefined属性'dirty'

未捕获的TypeError:无法读取undefined的属性'release'

为什么我得到'TypeError:无法读取属性'slice'的undefined'?