Firebase onAuthStateChanged和Redux状态

时间:2019-04-21 20:44:44

标签: javascript firebase react-native redux firebase-authentication

我在React Native中有一个加载屏幕组件。每当“身份验证”状态更改时,我都会导航到所需的屏幕。  当用户正在注册时,我将redux状态标记为isRegistering = true。这是因为在使用Firebase完成注册后,我仍然想显示注册完成屏幕,并根据身份验证状态从加载屏幕中阻止自动导航。

问题似乎是,在auth更改时调用事件时,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
    }
}

1 个答案:

答案 0 :(得分:0)

尝试一下

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