我应该在react-native中添加一个侦听器,以便它侦听所有屏幕中的事件吗?

问题描述 投票:1回答:1

例如,我想实现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;

非常感谢您的帮助。谢谢。

firebase react-native google-cloud-firestore
1个回答
0
投票
您应该将其放在App.js或将导航器放在其中的任何文件中
© www.soinside.com 2019 - 2024. All rights reserved.