react-native-navigation的迁移库

Navigation.js 1.9KB

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