Перейти к основному содержимому

Переход между экранными формами разрабатываемого приложения

Формулировка задачи

По нажатию строки в списке сущностей на экранной форме А перейти на экранную форму В с подробной информацией о выбранной сущности.

Предварительные требования

Создана экранная форма А со списоком сущностей и экранная форма B, отображающая информацию об одной сущности.

Рекомендуемое решение задачи

Существуют следующие способы перехода к экранной форме:

  • с использованием History API браузера;
  • с использованием метода executeAction() JS-библиотеки FrontendCore.

Настройка маршрутизации с использованием History API браузера

  1. Настройка маршрутизации для экранной формы B.

    Имена параметров указываются в URL-адресе после символа двоеточия, например, /project/:Id.

  2. Вызов метода goToUrl() на экранной форме A с параметром Url-адреса.

    OnRowClick={async (item) => {
    goToUrl('/project/:Id', {Id: item.Id}); // значение будет доступно через getValue('History.params.Id')
    }}

    На экранной форме B значение параметра из Url-адреса будет доступно в переменной History.params.<имя параметра>, например, History.params.Id.

Настройка маршрутизации с использованием метода executeAction()

  1. Создайте действие типа Static между экранными формами A и B.

  2. Вызовите метод executeAction() на экранной форме А, передав ему имя действия и параметры.

  3. Получите доступ к параметрам на экранной форме B через переменную Request.<имя параметра>, например, Heap: Request.rowId.

    OnRowClick={async (item) => {
    executeAction('goToAddProj', { Id: item.Id }); // значение будет доступно через getValue('Request.Id')
    }}