Как построить иерархию для веб-сайтов с реагирующей навигацией с использованием ссылок - PullRequest
0 голосов
/ 23 марта 2020

Контекст / поток

Я использую новый выставочный проект (expo init) с реагирующей навигационной сетью.

Это то, что я пытаюсь выполнить sh:

  • Venues показывает список мест
  • Нажав на одно из мест, вы попадете на VenueDetails
  • В месте, где вы можете добавить Stuf в корзину и откройте свою корзину, которая приведет вас к OrderDetails

Мне нужен способ запоминания URL / реагирования, чтобы я помнил, что я выбрал этот маршрут, чтобы я мог go вернуться вниз по цепочке если пользователь обновляет или открывает ссылку в новой вкладке.

Описание

Я настроил ссылку следующим образом:

export default function (containerRef) {
  return useLinking(containerRef, {
    prefixes: [Linking.makeUrl('/')],
    config: {
      Root: {
        initialRouteName: 'Venues',
        path: '',
        screens: {
          Venues: '',

          VenueDetails: {
            path: 'venue/:slug',
            parse: { slug: String },
          },

          OrderDetails: {
            path: 'venue/:slug/order-overview',
            parse: { slug: String },
          },
        }
      }
    }
  })
}

То, что я хочу, это открыть OrderDetails, когда я перехожу к /venue/some-slug/order-overview.

Если я перевернуть заказ в объекте useLinking (так: OrderDetails, VenueDetails и затем Venue) это работает, но это не так обратите внимание, что VenueDetails - это предыдущая страница.

Как я могу сказать, что реакция-навигация / связывание означает, что возвращение назад из OrderDetails означает, что ld go to VenueDetails? И что возвращение из VenueDetails означает, что оно должно go до Venue? Могу ли я определить родителя как-нибудь? Может быть, мне нужно как-то поместить его в URL?

Примечание: он отлично работает при запуске на домашней странице и выполнении обычной навигации. Это только когда я открываю вложенную страницу напрямую (или обновляем sh страницу), это терпит неудачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...