react-native-navigation的迁移库

Navigation.js 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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) => Navigation.push(compId(selfOrCompId), isString(screen) ? component(screen) : 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) => Navigation.showModal(isString(screen) ? stack(screen) : 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. push,
  28. pushExternalComponent,
  29. pop,
  30. popToRoot,
  31. showModal,
  32. dismissModal,
  33. dismissAllModals,
  34. showOverlay,
  35. dismissOverlay,
  36. events: Navigation.events.bind(Navigation),
  37. popTo: Navigation.popTo.bind(Navigation),
  38. setDefaultOptions: Navigation.setDefaultOptions.bind(Navigation),
  39. setRoot,
  40. TouchablePreview: Navigation.TouchablePreview,
  41. setStackRoot,
  42. constants
  43. }