navigate

Делает переход пользователя по указанному адресу. Может открыть модальное окно поверх текущего окна

Применение/сигнатура

import { navigate } from '@app/ui'
navigate(url, params)

Аргументы

url*: string Адрес по которому нужно совершить переход. Эта функция поддерживает только абсолютный URL. Для передачи относительных URL следует использовать  ctx.account.navigate().

params: { replace, openInModalScreen, fullScreenModal, openInExternalApp, resetStack }

Объект с дополнительными необязательными параметрами, указывающими как именно открыть переданный URL.

  1. replace: boolean

    • По-умолчанию: false

    • Если true - новый экран заменит предыдущий в текущем стеке навигации/истории, а не добавится следующим, поэтому возврат "назад" с такого урла не будет учитывать тот URL на котором находился пользователь до перехода.

    • Также в мобильном приложении не произойдёт стандартной анимации перехода между экранами.

  2. openInModalScreen: true | false | undefined

    • По-умолчанию: undefined

    • Позволяет открыть ссылку в модальном окне.

    • true — новый экран откроется в новом модальном "слое" поверх текущего с соответствующей анимацией.

    • false — ссылка гарантировано откроется НЕ в модальном "слое", а в базовом, если перед этим действием было открыто любое количество модальных "слоёв", то все они будут немедленно закрыты, а после этого произойдёт обычный navigate в базовом стеке. Обратите внимание, что false для данного свойства НЕ является пассивным значением по-умолчанию, как для большинства остальных.

    • undefined — (не указан) навигация произойдёт в текущем стеке (базовом или модальном).

  3. fullScreenModal: boolean

    • По-умолчанию: false

    • Применяется только вместе с openInModalScreen. Если true - модальное окно будет открыто на весь экран с крестиком, закрывающим его

  4. openInExtrenalApp: boolean

    • По-умолчанию: false

    • В мобильном приложении: Позволяет открыть ссылку во внешнем приложении средствами мобильной ОС. В общем случае ссылка будет открыта в мобильном браузере по умолчанию.

    • В веб-версии: Ссылка будет открыта с помощью  window.open()  (скорее всего - в новой вкладке браузера).

  5. resetStack: boolean

    • По-умолчанию: false
    • Применяется только в приложении. Если true - ссылка откроется с полным стека (не будет возможности вернуться назад)

Примеры


Отправит пользоватея в google, открыв новое окно
<button
  class="secondary"
  onClick={navigate("https://google.com", {openInExternalApp: true})}
>
  в Google
</button>

Объекты ctx.account и ctx.router предоставляют свои методы navigate, которые строят относительные пути с учетом текущего аккаунта и текущего роутера соответственно


<button
  class="secondary"
  onClick={ctx.account.navigate("/")}
>
  На главную
</button>

Следующий код отправит пользователя на роут  /test , объявленный в рамках текущей страницы


<button
  class="secondary"
  onClick={ctx.router.navigate("/test")}
>
  Go to test
</button>

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании