我有一个应用程序,我正在使用3 Context Provider
.为了让应用程序正常工作,我必须将<App/>
包在所有这些providers
中.随着我的应用程序的发展,我希望能有更多的Provider 来提供我需要连接的更多类型的数据.我已经开始觉得,可能有更好的方式让供应商进入<App />
.
My 100 Code:
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>
);
};
Some of the questions I have are:
- 是否有更好的方法在应用程序中使用多个上下文提供程序.
- 这些提供者的嵌套顺序对应用程序有影响吗?
- 我们可以跳过在
<App/>
中添加提供者,而是在需要的任何屏幕中导入它们,并在其中包装该屏幕元素吗?