javascript - Firebase onAuthStateChanged 和 Redux 状态

标签 javascript firebase react-native redux firebase-authentication

我在 React Native 中有一个加载屏幕组件。每当身份验证状态发生变化时,我都会导航到所需的屏幕。 当用户正在进行注册时,我将 redux 状态标记为 isRegistering = true。这是因为在 Firebase 注册完成后,我仍然想显示注册完成屏幕并根据身份验证状态推迟加载屏幕的自动导航。

问题似乎是当在身份验证更改时调用事件时,redux 状态为空。即使我从调试中知道,redux 状态之前有数据,并且在事件之后也有数据。但在事件期间并在 Redux 中检查 isRegistration 时,状态完全为空(重置为默认状态)。

我检查了我的所有操作、reducer 等。没有任何调用,所声明的 redux 只是在 authstatechanged 事件发生时进行检查,并且在那一刻它没有数据,即使数据之前就在那里它。

componentDidMount() {
        firebase.auth().onAuthStateChanged(user => {            
            if (this.props.userObject.isRegistering === false) {                
                this.props.navigation.navigate(user ? 'MainScreen' : 'LandingPage')
            }
        })
    }

const mapStateToProps = (state) => {   
    return {
        userObject: state.user
    }
}

最佳答案

试试这个,

componentDidMount() {
     var that = this;
        firebase.auth().onAuthStateChanged(user => {            
            if (that.props.userObject.isRegistering === false) {                
                that.props.navigation.navigate(user ? 'MainScreen' : 'LandingPage')
            }
        })
    }

关于javascript - Firebase onAuthStateChanged 和 Redux 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55786606/

相关文章:

android - 任务 ':app:processDebugResources' 执行失败。 > 安卓资源链接失败

react-native - 为什么命令 npm install -g expo-cli 不起作用

javascript - CSS 转换问题后的 jQuery 偏移量

javascript - 模态仅显示第一张图片(我应该如何将代码从 id 更改为 class?)

ios - Google 社交互动事件未反射(reflect)在 Google Analytics 中

javascript - 来自不同用户的消息在同一侧的问题

react-native - 使用react-native-device-info模块时,React Native Android应用程序在汇编发布版本中崩溃

javascript - HTML 整页缩放取决于屏幕分辨率

javascript - c3.js 生成图表后更改颜色模式

javascript - 大型 firebase 函数请求似乎会导致连接错误