react-native-navigation的迁移库

Navigation.js 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const { isString, get } = require('lodash');
  2. const { stack, component } = require('../commons/Layouts');
  3. const { Navigation } = require('react-native-navigation');
  4. const push = (selfOrCompId, screen, options) => Navigation.push(compId(selfOrCompId), isString(screen) ? component(screen, options) : screen);
  5. const pushExternalComponent = (self, name, passProps) => Navigation.push(self.props.componentId, {
  6. externalComponent: {
  7. name,
  8. passProps
  9. }
  10. });
  11. const pop = (selfOrCompId) => Navigation.pop(compId(selfOrCompId));
  12. const showModal = (screen, options) => Navigation.showModal(isString(screen) ? stack(component(screen, options)) : screen);
  13. const dismissModal = (selfOrCompId) => Navigation.dismissModal(compId(selfOrCompId));
  14. const dismissAllModals = () => Navigation.dismissAllModals();
  15. const showOverlay = (name, options) => Navigation.showOverlay(component(name, options));
  16. const dismissOverlay = (name) => Navigation.dismissOverlay(name);
  17. const popToRoot = (self) => Navigation.popToRoot(self.props.componentId);
  18. const mergeOptions = (selfOrCompId, options) => Navigation.mergeOptions(compId(selfOrCompId), options);
  19. const setStackRoot = (self, root) => Navigation.setStackRoot(self.props.componentId, root);
  20. const setRoot = (root) => Navigation.setRoot(root.root ? root : { root: component(root, {}) });
  21. const compId = (selfOrCompId) => {
  22. return get(selfOrCompId, 'props.componentId', selfOrCompId);
  23. }
  24. const constants = Navigation.constants;
  25. module.exports = {
  26. mergeOptions,
  27. updateProps: Navigation.updateProps.bind(Navigation),
  28. push,
  29. pushExternalComponent,
  30. pop,
  31. popToRoot,
  32. showModal,
  33. dismissModal,
  34. dismissAllModals,
  35. showOverlay,
  36. dismissOverlay,
  37. events: Navigation.events.bind(Navigation),
  38. popTo: Navigation.popTo.bind(Navigation),
  39. setDefaultOptions: Navigation.setDefaultOptions.bind(Navigation),
  40. setRoot,
  41. TouchablePreview: Navigation.TouchablePreview,
  42. setStackRoot,
  43. constants
  44. }