【问题标题】:Result from promise React Native来自 Promise React Native 的结果
【发布时间】:2018-10-02 15:16:04
【问题描述】:

这是我的连接方法:

export  function connexionUser(email, password) {

    result = firebase.auth().signInWithEmailAndPassword(email, password)
        .then((res) => {
            console.log("res: ", res)
            return true;
        })
        .catch(function (error) {
            return false;
        });
        return result;
};

这是我在 index.js 中的方法:

login = () => {

    const { email, password } = this.state;
    var result = connexionUser(email, password);
    console.log("result");
    console.log(result);
    if (result == true) {
        this.props.navigation.navigate('Favorites');
    }
}

问题: 我想在我的 index.js 中获得“connexionUser()”的结果,以便能够管理导航或其他东西。 但我的结果不是真假:

result
A {
  "a": 0,
  "b": null,
  "c": A {
    "a": 0,
    "b": qb {
      "a": [Circular],
      "b": [Function anonymous],
      "c": false,
      "f": null,
      "g": [Function anonymous],
      "next": null,
    },
    "c": A {
      "a": 0,
      "b": qb {
        .....
        .....and more

PS : 我是 React Native 的初学者。

【问题讨论】:

    标签: javascript react-native firebase-authentication


    【解决方案1】:

    您可以随时尝试输入console.log 以查看结果的输出。如果您在使用 React Native 进行调试时遇到问题,the docs on debugging 真的很有帮助。

    就目前而言,您的 registerUser 将返回 undefined,因为您实际上并没有返回结果。我想你正试图在你的then 语句中返回result,但是then 语句应该接收你的firebase 函数的结果并返回这些结果。我建议阅读一些关于Promises 的内容,以了解它们是如何工作的。您可以重写它的一种方法是:

    export function registerUser(email, password) {
    
        result = firebase.auth().createUserWithEmailAndPassword(email, password).then((res) => {
                console.log("res: ", res)
                return res;
            })
            .catch((error) => {
                var errorCode = error.code;
                var errorMessage = error.message;
                alert(errorMessage);
            });
        return result;
    }
    

    【讨论】:

    • 看来您的新目标是实现两件事:1. 您希望触发条件 if 语句 2. 您希望将 results 对象传递给子组件 如果是这种情况,那么您始终可以将条件简化为:if (result),因为对象将始终为真(medium.com/@ariel.salem1989/…)。要将结果传递给以下组件,只需遵循文档:reactnavigation.org/docs/en/params.html
    猜你喜欢
    • 2016-05-16
    • 2020-01-18
    • 2018-12-08
    • 2022-11-30
    • 1970-01-01
    • 2019-07-18
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多