В моем собственном приложении-ответе у меня есть один запрос на выборку, который получает JSON с сервера postgres.Эта выборка устанавливает состояние и передается через дочерние элементы HomeScreen для поддержания состояния через компоненты.
В моем UserScreen и OverviewScreen мне требуется доступ к тому же состоянию состояния, которое обновляется дочерним элементом HomeScreen.Как мне пропустить эту опору через навигацию, чтобы установить состояние для экрана обзора и экрана пользователя?
Навигатор настроен в своем собственном файле так же.Должен ли я настроить свой запрос на выборку через эту страницу и передать реквизиты каждой вкладке?
import React from 'react';
import { Platform } from 'react-native';
import { createStackNavigator, createBottomTabNavigator } from 'react-navigation';
import TabBarIcon from '../components/TabBarIcon';
import HomeScreen from '../screens/HomeScreen';
import OverviewScreen from '../screens/OverviewScreen';
import AchievementsScreen from '../screens/AchievementsScreen';
import UserScreen from '../screens/UserScreen';
const HomeStack = createStackNavigator({
Home: HomeScreen,
});
HomeStack.navigationOptions = {
tabBarLabel: 'Home',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={
Platform.OS === 'ios'
? `ios-checkbox${focused ? '' : '-outline'}`
: 'md-checkbox'
}
/>
),
};
const OverviewStack = createStackNavigator({
Overview: OverviewScreen,
});
OverviewStack.navigationOptions = {
tabBarLabel: 'Overview',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={Platform.OS === 'ios' ? 'ios-trending-up' : 'md-trending-up'}
/>
),
};
const AchievementsStack = createStackNavigator({
Achievements: AchievementsScreen,
});
AchievementsStack.navigationOptions = {
tabBarLabel: 'Achievments',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={Platform.OS === 'ios' ? 'ios-star' : 'md-star'}
/>
),
};
const UserStack = createStackNavigator({
User: UserScreen,
});
UserStack.navigationOptions = {
tabBarLabel: 'Settings',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={Platform.OS === 'ios' ? 'ios-information-circle-outline' : 'md-information-circle-outline'}
/>
),
};
export default createBottomTabNavigator({
HomeStack,
OverviewStack,
AchievementsStack,
UserStack,
});