Увеличенное использование памяти для IOS и Android во вложенных маршрутах реагирующей навигации - PullRequest
1 голос
/ 13 марта 2020

У меня есть глубоко вложенный маршрут, как показано ниже.

const ReturnFlows = createStackNavigator(
  {
    OrderSelectScreen,
    ItemTBScreen,
  },
  {
    initialRouteName: 'OrderSelectScreen'
  },
);
const CheckoutFlows = createStackNavigator(
  {
    ReviewScreen,
    CheckoutScreen,
  },
  {
    initialRouteName: 'ReviewScreen'
  },
);

const ItemFlowScreens = createSwitchNavigator(
  {
    ItemTAScreen,
    ReturnFlows,
    CheckoutFlows,
    CompletedScreen,
  },
  {
    initialRouteName: 'CheckoutFlows',
  },
);

const CreateOrderScreens = createStackNavigator(
  {
    CustomerScreen,
    CSelectedScreen,
    WarehouseScreen,
    WSelectedScreen,
    ItemFlowScreens,
  },
  {
    headerMode: 'none',
  },
);

const Main = createStackNavigator(
  {
    ...otherRoutes,
    CreateOrderScreens,
    HomeScreen,
  },
  {
    headerMode: 'none',
  },
);

Приведенные выше маршруты примерно соответствуют схеме ниже

nav in image form

Все работает хорошо, но пока я go глубже в На вложенных экранах я заметил скачки использования памяти до 300мб. Кроме того, в последнем CompletedScreen у меня есть следующая функция для возврата на начальную домашнюю страницу.

const goHome = () => {
  _navigator.dispatch(
    StackActions.reset({
      key: null,
      index: 0,
      actions: [NavigationActions.navigate({ routeName: 'HomeScreen' })],
    }),
  );
};

Несмотря на то, что я включил useScreens с react-native-screens и перешел на начальный экран, использование памяти не кажется go вниз. Как я могу преодолеть эту проблему?

...