例如,我想实现react-native-netInfo
来确定设备是否具有互联网服务,我知道我需要为此添加一个侦听器,但是将其添加到每个屏幕听起来都很累。那么,我应该在哪里添加它以在每个屏幕上收听它?
我还希望为Firebase Cloud Firestore实施CACHE.SIZE.LIMIT,所以我应该在哪里添加??
这是我的项目结构:
Project
|_App.js
|_index.js
|_app
|_screens
|_components
在我的root / App.js或root / index.js中?
编辑:添加了App.js
const AuthLoadingScreen = props => {
function checkUser() {
var user = auth().currentUser;
props.navigation.navigate(user ? 'Main' : 'Auth');
}
checkUser();
return (
<View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
<Text>Loading...</Text>
</View>
);
};
const AuthStack = createStackNavigator(
{
LogIn: {
screen: LogInScreen,
},
SignUp: {
screen: SignUpScreen,
},
},
{
initialRouteName: 'LogIn',
},
);
const MainStack = createStackNavigator(
{
Profile: {
screen: ProfileScreen,
},
ReAuth: {
screen: ReAuthScreen,
},
EditProfile: {
screen: EditProfileScreen,
},
Home: {
screen: HomeScreen,
},
CreateTask: {
screen: CreateTaskScreen,
},
AllTasks: {
screen: AllTasksScreen,
},
},
{
initialRouteName: 'Home',
},
);
const AppContainer = createAppContainer(
createSwitchNavigator(
{
AuthLoad: AuthLoadingScreen,
Auth: AuthStack,
Main: MainStack,
},
{
initialRouteName: 'AuthLoad',
},
),
);
export default AppContainer;
我们将不胜感激。谢谢。
答案 0 :(得分:0)
您应该将其放在App.js或将导航器放在其中的任何文件中