Как отключить страницу на основе запроса базы данных (firebase)? - PullRequest
2 голосов
/ 18 мая 2019

Я новичок в области реагирования и ведения огня, и в настоящее время разрабатываю и применяю как мой последний проект года

ПРОБЛЕМА:

В моем приложении две страницы СТРАНИЦА 1 & СТРАНИЦА2 , Я хочу отключить PAGE 1 до тех пор, пока PAGE 2 не введет данные (следует проверять только начальную запись, когда приложение установлено)

КОД:

КОД ВНУТРЕННЯЯ СТРАНИЦА 1

componentDidMount() {
firebase.database().ref(`/users/${awcid}/Timeline/Page2/`)
     .orderByChild('Page2date')
     .limitToLast(1)
     .once('value', checkifexists => {
       const datafff = firebaseLooper(checkifexists);
       console.log("checkifexists", datafff.length);
        const temp=datafff.length;
       if ((temp >= 1)) {
         this.setState({
           checkifexists: temp
         });
         console.log( "--------checkifexists--------","IF CONDITION",this.state.checkifexists, "----------------");
       } else {
         this.setState({
           checkifexists: 0
         });
         console.log("ELSE CONDITION");
       }
     });
}

ВНУТРЕННИЙ РЕНДЕР

   {!(parseInt(this.state.checkifexists) >= parseInt(1)) ? 
 <View style={styles.notexists} >
<Text style={{ color: '#FFFFFF', textAlign: 'center', alignItems: 'center', }}>Please enter stock page initially to access this page{'\n'}</Text>
</View> :
         :<View><Text>Display the form</Text></View>}

Этот код работает нормально, но проверяется каждый раз, когда загружается page1 (вместо первоначальной проверки)

1 Ответ

0 голосов
/ 18 мая 2019

Вы должны сохранить флаг, чтобы определить, запущено ли приложение в первый раз после установки. Вы можете использовать act-native-async-storage , чтобы сохранить поле как 'isNotFrsttime' и установить его в значение true после первого запуска. Также обязательно включите эту логическую проверку, чтобы блокировать ваши представления только для первого запуска приложения.

В противном случае, если вы используете избыточность, вы можете сохранить состояние избыточности и выполнить регидратацию при запуске приложения. Вы можете сохранить свой флаг в Redux, если вы уже реализовали Redux в своем проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...