react-native-navigation的迁移库

CocktailsListScreen.tsx 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. const React = require('react');
  2. import { NavigationComponent } from 'react-native-navigation';
  3. const CocktailsView = require('./CocktailsView')
  4. const { Platform } = require('react-native');
  5. const Navigation = require('../../services/Navigation');
  6. const Screens = require('../Screens')
  7. const MULTIPLIER = 1.15
  8. const LONG_DURATION = 350 * MULTIPLIER
  9. const SHORT_DURATION = 190 * MULTIPLIER
  10. export default class CocktailsListScreen extends NavigationComponent {
  11. static options() {
  12. return {
  13. ...Platform.select({
  14. android: {
  15. statusBar: {
  16. style: 'dark',
  17. backgroundColor: 'white'
  18. }
  19. }
  20. }),
  21. topBar: {
  22. title: {
  23. text: 'Cocktails'
  24. }
  25. }
  26. }
  27. }
  28. render() {
  29. return (
  30. <CocktailsView
  31. onItemPress={this.pushCocktailDetails}
  32. />
  33. );
  34. }
  35. update = (item: any) => {
  36. Navigation.updateProps('DETAILS_COMPONENT_ID', item);
  37. }
  38. pushCocktailDetails = (item: any) => {
  39. Navigation.push(
  40. this,
  41. {
  42. component: {
  43. name: Screens.CocktailDetailsScreen,
  44. passProps: { ...item },
  45. options: {
  46. animations: {
  47. push: {
  48. content: {
  49. alpha: {
  50. from: 0,
  51. to: 1,
  52. duration: LONG_DURATION
  53. }
  54. },
  55. sharedElementTransitions: [
  56. {
  57. fromId: `image${item.id}`,
  58. toId: `image${item.id}Dest`,
  59. duration: LONG_DURATION
  60. },
  61. {
  62. fromId: `title${item.id}`,
  63. toId: `title${item.id}Dest`,
  64. duration: LONG_DURATION
  65. },
  66. {
  67. fromId: `backdrop${item.id}`,
  68. toId: 'backdrop',
  69. duration: LONG_DURATION
  70. }
  71. ],
  72. elementTransitions: [
  73. {
  74. id: 'description',
  75. alpha: {
  76. from: 0,
  77. duration: SHORT_DURATION
  78. },
  79. translationY: {
  80. from: 16,
  81. duration: SHORT_DURATION
  82. }
  83. }
  84. ]
  85. }
  86. }
  87. }
  88. }
  89. }
  90. )
  91. }
  92. }