react-native-navigation的迁移库

ComponentRegistry.ts 990B

123456789101112131415161718
  1. import { AppRegistry, ComponentProvider } from 'react-native';
  2. import { ComponentWrapper } from './ComponentWrapper';
  3. import { ComponentType } from 'react';
  4. import { Store } from './Store';
  5. import { ComponentEventsObserver } from '../events/ComponentEventsObserver';
  6. export class ComponentRegistry {
  7. constructor(private readonly store: Store, private readonly componentEventsObserver: ComponentEventsObserver) { }
  8. registerComponent(componentName: string, getComponentClassFunc: ComponentProvider, ReduxProvider?: any, reduxStore?: any): ComponentType<any> {
  9. const OriginalComponentClass = getComponentClassFunc();
  10. const NavigationComponent = ComponentWrapper.wrap(componentName, OriginalComponentClass, this.store, this.componentEventsObserver, ReduxProvider, reduxStore);
  11. this.store.setOriginalComponentClassForName(componentName, OriginalComponentClass);
  12. AppRegistry.registerComponent(componentName, () => NavigationComponent);
  13. return NavigationComponent;
  14. }
  15. }