首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Native - Alert.alert似乎不调用函数

React Native - Alert.alert似乎不调用函数
EN

Stack Overflow用户
提问于 2018-09-10 07:32:34
回答 4查看 1.5K关注 0票数 2

我的注销用户功能似乎根本不起作用。我在登录时从一个警报中调用它,但它似乎没有调用它。如果我试图在最后添加"()“,它只会给我一个错误。

代码语言:javascript
复制
loginUser = (email, password) => {
      try {
        firebase.auth().signInWithEmailAndPassword(email, password).then(function (user){
          console.log(user)
          console.log('we are logged in boys')
          Alert.alert(
            'Signed In',
            'You have signed in. Well done!',
            [
              {text: 'Sign Out', onPress: () => this.signOutUser},
            ],
            { cancelable: false }
          )
        })
      }
      catch(error) {
        console.log(error.toString())
      }
    }

    signOutUser = () => {
      console.log('Do we reach this or not')
      firebase.auth().signOut().then(function (user){
        // Sign-out successful.
        console.log('We are signing out!')
      }).catch(function(error) {
        // An error happened.
        console.log('There is an issue!')
      });
    }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-09-10 14:47:04

signInWithEmailAndPassword内部的this回调不是您所期望的。将回调函数更改为arrow function,如下所示

代码语言:javascript
复制
firebase.auth().signInWithEmailAndPassword(email, password).then((user) => {
  ...
});

另外,将assignment onPress函数更改为

代码语言:javascript
复制
{text: 'Sign Out', onPress: this.signOutUser}

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2018-09-10 14:59:54

使用箭头函数更新您的函数:

代码语言:javascript
复制
loginUser = (email, password) => {
      try {
        firebase.auth().signInWithEmailAndPassword(email, password).then((user)=> {
          console.log(user)
          console.log('we are logged in boys')
          Alert.alert(
            'Signed In',
            'You have signed in. Well done!',
            [
              {text: 'Sign Out', onPress: () => this.signOutUser()},//Or Write  this.signOutUser direct without arrow function
            ],
            { cancelable: false }
          )
        })
      }
      catch(error) {
        console.log(error.toString())
      }
    }

希望这能对你有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2018-09-10 11:12:05

测试一下:

代码语言:javascript
复制
{text: 'Sign Out', onPress: () => { this.signOutUser(); } }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52249453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档