react-native-navigation的迁移库

ComponentRegistry.ts 737B

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