navigate
Делает переход пользователя по указанному адресу. Может открыть модальное окно поверх текущего окна
Применение/сигнатура
import { navigate } from '@app/ui'
navigate(url, params)
Аргументы
url*: string
Адрес по которому нужно совершить переход. Эта функция поддерживает только абсолютный URL. Для передачи относительных URL следует использовать ctx.account.navigate().
params: { replace, openInModalScreen, fullScreenModal, openInExternalApp, resetStack }
Объект с дополнительными необязательными параметрами, указывающими как именно открыть переданный URL.
-
replace:
boolean-
По-умолчанию:
false -
Если true - новый экран заменит предыдущий в текущем стеке навигации/истории, а не добавится следующим, поэтому возврат "назад" с такого урла не будет учитывать тот URL на котором находился пользователь до перехода.
-
Также в мобильном приложении не произойдёт стандартной анимации перехода между экранами.
-
-
openInModalScreen:
true | false | undefined-
По-умолчанию:
undefined -
Позволяет открыть ссылку в модальном окне.
-
true— новый экран откроется в новом модальном "слое" поверх текущего с соответствующей анимацией. -
false— ссылка гарантировано откроется НЕ в модальном "слое", а в базовом, если перед этим действием было открыто любое количество модальных "слоёв", то все они будут немедленно закрыты, а после этого произойдёт обычный navigate в базовом стеке. Обратите внимание, что false для данного свойства НЕ является пассивным значением по-умолчанию, как для большинства остальных. -
undefined— (не указан) навигация произойдёт в текущем стеке (базовом или модальном).
-
-
fullScreenModal:
boolean-
По-умолчанию:
false -
Применяется только вместе с openInModalScreen. Если true - модальное окно будет открыто на весь экран с крестиком, закрывающим его
-
-
openInExtrenalApp:
boolean-
По-умолчанию: false
-
В мобильном приложении: Позволяет открыть ссылку во внешнем приложении средствами мобильной ОС. В общем случае ссылка будет открыта в мобильном браузере по умолчанию.
-
В веб-версии: Ссылка будет открыта с помощью window.open() (скорее всего - в новой вкладке браузера).
-
-
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>
