Javascript 来自导入函数的未定义值

Javascript 来自导入函数的未定义值,javascript,reactjs,firebase,Javascript,Reactjs,Firebase,我试图从另一个JS“helper”文件中获取真/假值,我有一些函数,但是当我试图从该函数中获取返回值时,得到的只是“未定义” console.log返回undefined,但是当我调用例如signOut或isUserLogged时,我在这些函数中添加了console.log而不是return,我可以在控制台中看到答案。尝试以下操作:将isUserLogged函数替换为: export function isUserLogged(){ return firebase.auth().onAu

我试图从另一个JS“helper”文件中获取真/假值,我有一些函数,但是当我试图从该函数中获取返回值时,得到的只是“未定义”


console.log返回undefined,但是当我调用例如signOut或isUserLogged时,我在这些函数中添加了console.log而不是return,我可以在控制台中看到答案。

尝试以下操作:将isUserLogged函数替换为:

export function isUserLogged(){
    return firebase.auth().onAuthStateChanged(user => !!user);
}

问题在于
firebase.auth().onAuthStateChanged
是异步的

您可以执行以下操作:

//LoginView.jsx

class Login extends React.Component {
  state = {
    toDashboard: false,
  }


componentDidMount = async () => {
        await firebase.auth().onAuthStateChanged(user => {
            if (user) {
                ...logged-in
            } else {
                ...logged-out
            }
        })
    }

isUserLogged
函数没有返回值,这就是为什么为
console.log(isUserLogged())打印
undefined
谢谢,先生,我试过了,但没有成功:(感谢您的时间,我将使用Yossi给我的例子,我很高兴:)
//LoginView.jsx

class Login extends React.Component {
  state = {
    toDashboard: false,
  }


componentDidMount = async () => {
        await firebase.auth().onAuthStateChanged(user => {
            if (user) {
                ...logged-in
            } else {
                ...logged-out
            }
        })
    }