У меня есть приложение, в котором я использую 3 Context Provider
. Чтобы приложение работало, мне нужно обернуть <App/>
во все эти providers
. Поскольку мое приложение растет, я ожидаю, что у меня будет еще несколько провайдеров для большего количества типов данных, с которыми я должен соединиться. Я уже начал чувствовать, что может быть лучший способ передать провайдеров в <App />
.
Мой App.js
Код:
import React from 'react';
import { createStackNavigator } from 'react-navigation-stack';
import { createAppContainer } from 'react-navigation';
import { Provider as BlogProvider} from './src/context/BlogContext';
import { Provider as VehicleProvider} from './src/context/VehicleContext';
import { Provider as AuthProvider} from './src/context/AuthContext';
import IndexScreen from './src/screens/IndexScreen';
import ShowScreen from './src/screens/ShowScreen';
import CreateScreen from './src/screens/CreateScreen';
import EditScreen from './src/screens/EditScreen';
import VehicleScreen from './src/screens/VehicleScreen';
const navigator = createStackNavigator(
{
Index: IndexScreen,
Show: ShowScreen,
Create: CreateScreen,
Edit: EditScreen,
Debug: DebugScreen,
Vehicle: VehicleScreen,
},
{
initialRouteName: 'Index',
defaultNavigationOptions: {
title: 'Main'
}
}
);
const App = createAppContainer(navigator);
export default () => {
return (
<BlogProvider>
<VehicleProvider>
<AuthProvider>
<App />
</AuthProvider>
</VehicleProvider>
</BlogProvider>
);
};
Некоторые из моих вопросов:
- Есть ли лучший способ использовать несколько поставщиков контекста в приложении.
- Влияет ли порядок, в котором эти поставщики вложены, на приложение?
- Можем ли мы пропустить добавление провайдера в
<App/>
и вместо этого импортировать его на любой экран, где он требуется, и обернуть этот элемент экрана в нем?