SelectList — dropdown dengan validasi
Komponen SelectList dari NexaJS menampilkan daftar pilihan dapat dicari; nilai
diproyeksikan lewat setSelected dan biasanya dihubungkan ke useFormValidation
seperti field teks. Data berbentuk array { key, value }; opsi save="key" menyimpan
kunci ringkas (mis. kode provinsi) ke state formulir.
Alur penggunaan di aplikasi
-
Navigator — Pada template bawaan, modul demo belum selalu terdaftar di
MenuComponents. Tambahkan entri route sendiri atau tanamkanSelectListdi dalam layar formulir. MenuComponents. -
Validasi —
handleChange/handleBlurdariuseFormValidation; tampilkanerrors.*setelahtouched.
Cuplikan cepat
import { View, Text, StyleSheet, SelectList, useFormValidation } from "NexaJS";
const genderData = [
{ key: "L", value: "Laki-laki" },
{ key: "P", value: "Perempuan" },
];
const { values, errors, touched, handleChange, handleBlur, isValid } =
useFormValidation(
{ gender: "" },
{ gender: { type: "text", placeholder: "Jenis Kelamin", length: [1, 1] } }
);
<SelectList
setSelected={(val) => handleChange("gender", val)}
data={genderData}
placeholder="Pilih Jenis Kelamin"
label="Jenis Kelamin"
searchPlaceholder="Cari..."
save="key"
onBlur={() => handleBlur("gender")}
/>
{touched.gender && errors.gender ? (
<Text style={{ color: "red", fontSize: 12 }}>{errors.gender}</Text>
) : null}Properti yang dipakai di demo
data,placeholder,label,searchPlaceholder.save—"key"agar state berisikey, bukan teks panjang.txColoropsional untuk warna teks.setSelected— callback dengan nilai terpilih.
Praktik yang disarankan
- Samakan panjang
lengthpada aturan validasi dengan formatkey(1 karakter vs 2 digit kode). - Untuk daftar besar, pertahankan pencarian; pertimbangkan paginasi sisi server jika data dari API.