Добавляем второй экран и делаем переход на него

Теперь давайте попробуем создать второй экран и связать эти 2 экрана между собой. Добавим в этом же файле ниже нашего кода еще один вызов app.screen, но в первый аргумент поставим значение /catalog.

// Catalog screen
const catalogScreen = app.screen('/catalog', async function(ctx, req) {
  return <screen title="Catalog">
    <text class="section">Catalog items</text>
  </screen>
})

Этот экран может быть открыт если мы теперь к адресу нашего файла добавим ~catalog.

Для этого добавим в первом экране вместо showToast действие перехода - navigate на экран каталога.

<button
  onClick={catalogScreen.navigate()}
  class={["primary","section"]}
  title="Click me"/>

Метод app.screen привязывает обработчик запроса экрана к шаблону пути URL. Шаблон является частью URL-адреса при запросе к экрану. Тогда полный URL-адрес для доступа к экрану соответствует точке входа исполняемого кода: файлу, который выполнил app.screen.

Есть разница между файлом, где написан код, и откуда он был запущен.

В нашем примере пока один файл - это start.tsx, и путь catalog внутри него запускается по адресу https://домен-аккаунта/start~catalog.

Но мы можем вынести код в другой файл, оставив в исходном файле только регистрацию экрана.

В этом случае роутер по прежнему будет считать что он запущен в рамках файла исходного файла start.tsx и все адреса будут строиться исходя из этого.

Таким образом, метод .navigate обеспечивает переход на другой экран в текущем файле. Добавим на второй экран ссылку, возвращающую нас обратно на первый.

<text onClick={mainScreen.navigate()} class="link">
  Go to main screen
</text>

Таким образом, у нас получится файл который содержит 2 экрана и навигацию между ними.

Попробуйте создать этот файл в своем аккаунте. После этого отсканируйте QR-код в нижнем правом углу приложением Chatium и посмотрите как это работает в нативном приложении.

Итоговый код

Следующий шаг: Создаем действие

❤️ Made with love on Chatium

ООО "Чатиум"

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