React - это простой в использовании фреймворк для создания интерфейсных приложений.

NativeScript - это фреймворк для мобильных приложений, который позволяет нам создавать собственные мобильные приложения с популярными интерфейсными фреймворками.

В этой статье мы рассмотрим, как создать приложение с помощью NativeScript React.

SegmentedBar

Компонент segmentBar позволяет нам добавить панель пользовательского интерфейса, которая отображает набор кнопок для дискретного выбора.

Мы можем отображать на кнопках текст или изображения.

Например, мы можем использовать его, написав:

import * as React from "react";
export default function Greeting({ }) {
  return (
    <frame>
      <page>
        <actionBar title="My App">
        </actionBar>
        <flexboxLayout justifyContent='center' >
          <segmentedBar>
            <segmentedBarItem title="First" />
            <segmentedBarItem title="Second" />
            <segmentedBarItem title="Third" />
          </segmentedBar>
        </flexboxLayout>
      </page>
    </frame>
  );
}

Мы добавляем segmentedBar в наше приложение.

Затем мы добавляем segmentedBarItem в нашу панель, чтобы показать некоторые элементы.

Мы также можем получить и установить индекс выбранного элемента с помощью:

import * as React from "react";
export default function Greeting({ }) {
  return (
    <frame>
      <page>
        <actionBar title="My App">
        </actionBar>
        <flexboxLayout justifyContent='center' >
          <segmentedBar
            selectedIndex={0}
            onSelectedIndexChange={({ value }) => {
              console.log(value)
            }}
          >
            <segmentedBarItem title="First" />
            <segmentedBarItem title="Second" />
            <segmentedBarItem title="Third" />
          </segmentedBar>
        </flexboxLayout>
      </page>
    </frame>
  );
}

selectedIndex имеет индекс элемента, который мы хотим выбрать по умолчанию.

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

value имеет индекс.

Слайдер

slider - это компонент пользовательского интерфейса, который дает нам ползунок для выбора значений в указанном числовом диапазоне.

Например, мы можем написать:

import * as React from "react";
export default function Greeting({ }) {
  const [val, setVal] = React.useState(0)
  return (
    <frame>
      <page>
        <actionBar title="My App">
        </actionBar>
        <flexboxLayout justifyContent='center' >
          <slider value={val} onValueChange={({ value }) => setVal(value)} />
        </flexboxLayout>
      </page>
    </frame>
  );
}

чтобы добавить компонент slider в наше приложение.

Мы устанавливаем value в состояние val.

И мы получаем значение и устанавливаем значение val в обратном вызове onValueChange.

Выключатель

switch позволяет нам переключаться между 2 состояниями.

Например, мы можем написать:

import * as React from "react";
export default function Greeting({ }) {
  const [val, setVal] = React.useState(true)
  return (
    <frame>
      <page>
        <actionBar title="My App">
        </actionBar>
        <stackLayout horizontalAlignment='center'>
          <switch
            checked={val}
            onCheckedChange={({ value }) => setVal(value)}
          />
          <label text={val.toString()} style={{ textAlignment: 'center' }} />
        </stackLayout>
      </page>
    </frame>
  );
}

Мы добавляем компонент switch с опорой checked, чтобы установить проверенное значение.

onCheckChange имеет функцию для получения проверенного значения, и мы устанавливаем это как значение состояния val.

Текстовое поле

Компонент textField - это компонент ввода, позволяющий пользователям вводить строку текста.

Например, мы можем написать:

import * as React from "react";
export default function Greeting({ }) {
  const [textFieldValue, setTextFieldValue] = React.useState()
  return (
    <frame>
      <page>
        <actionBar title="My App">
        </actionBar>
        <stackLayout horizontalAlignment='center'>
          <textField
            text={textFieldValue}
            hint="Enter text..."
            onTextChange={({ value }) => setTextFieldValue(value)}
          />
          <label text={textFieldValue} style={{ textAlignment: 'center' }} />
        </stackLayout>
      </page>
    </frame>
  );
}

Мы добавляем textField и слушаем событие onTextChange, чтобы получить последнее введенное значение.

text содержит введенный текст.

hint - заполнитель для текстового поля.

Заключение

Мы можем добавить сегментированную панель, текстовый ввод, слайдер и переключиться в наше мобильное приложение с помощью React NativeScript.