Необходимый провайдер не работает правильно в реагировать на родной - PullRequest
0 голосов
/ 23 апреля 2020

Вот файл приложения:

import React from 'react';
import { createAppContainer, createSwitchNavigator } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import { createBottomTabNavigator } from 'react-navigation-tabs'; 
import AccountScreen from './src/screens/AccountScreen';
import SigninScreen from './src/screens/SigninScreen';
import SignupScreen from './src/screens/SignupScreen';
import TrackListScreen from './src/screens/TrackListScreen';
import TrackDetailScreen from './src/screens/TrackDetailScreen';
import TrackCreateScreen from './src/screens/TrackCreateScreen';
import {setNavigator} from './src/navigationRef';
import ResolveAuthScreen from './src/screens/ResolveAuthScreen';

import {Provider as LocationProvider} from './src/context/LocationContext';
import {Provider as AuthProvider} from './src/context/AuthContext';

const switchNaivgator= createSwitchNavigator({
ResolveAuth:ResolveAuthScreen,
loginFlow: createStackNavigator({
Signup:SignupScreen,
Signin:SigninScreen
}),

mainFlow: createBottomTabNavigator({
  trackListFlow: createStackNavigator({
    TrackList:TrackListScreen,
    TrackDetail:TrackDetailScreen
  }),
    TrackCreate:TrackCreateScreen,
    Account:AccountScreen
})

});
const App= createAppContainer(switchNaivgator);

export default () => {
  return (
        <LocationProvider>
          <AuthProvider>
          <App 
            ref={ navigator => {
             setNavigator(navigator) 
              }}
            />
          </AuthProvider>
        </LocationProvider>
    );
}

В этом случае я не могу использовать функции, определенные внутри LocationProvider, но могу использовать переменную в AuthProvider .. !! То же самое, если я переписываю раздел как


export default () => {
  return (
          <AuthProvider>
            <LocationProvider>
          <App 
            ref={ navigator => {
             setNavigator(navigator) 
              }}
            />
          </LocationProvider>
          </AuthProvider>
    );
}

Теперь я могу использовать значения, определенные внутри LocationProvider, но не могу получить доступ к значениям внутри AuthProvider .. !!

...