我是新的反应和火力发源者,目前正在开发和应用作为我的最后一年的项目
问题:
我的应用程序中有两个页面 PAGE 1和PAGE2 , 我想禁用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时都会进行检查 (而不是最初进行检查)
答案 0 :(得分:0)
安装后,您必须保留一个标志以标识该应用程序是否首次运行。您可以使用react-native-async-storage将字段存储为'isNotFrsttime',并在首次运行后将其设置为true。另外,请确保包括该布尔检查以仅在首次运行应用程序时阻止您的视图。
否则,如果您正在使用redux,则可以保持redux状态并在应用启动时补水。如果您已在项目中实现redux,则可以将标志存储在redux中。