Firebase onAuthStateChanged и состояние Redux - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть компонент экрана загрузки в React Native. Всякий раз, когда изменяется состояние аутентификации, я перехожу к нужному экрану. Когда пользователь находится в процессе регистрации, я отмечаю состояние избыточности как isRegistering = true. Это связано с тем, что после того, как регистрация завершена с помощью firebase, я все еще хочу показать экран завершения регистрации и отключить автоматическую навигацию с экрана загрузки в зависимости от состояния авторизации.

Проблема, похоже, заключается в том, что когда событие вызывается при изменении аутентификации, состояние избыточности является пустым. Это событие, которое я знаю из отладки, что в состоянии избыточности были данные до и сразу после события. Но во время события и проверки isRegistration в 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 Ответ

1 голос
/ 23 апреля 2019

Попробуйте,

componentDidMount() {
     var that = this;
        firebase.auth().onAuthStateChanged(user => {            
            if (that.props.userObject.isRegistering === false) {                
                that.props.navigation.navigate(user ? 'MainScreen' : 'LandingPage')
            }
        })
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...