🧬 Assembla i componenti
Un cascader è un tipo di componente di input che consente agli utenti di selezionare dati gerarchici, come una categoria o sottocategoria da un menu a discesa. Quando un utente seleziona un’opzione dal menu a discesa, il cascader si aggiornerà automaticamente per mostrare le relative sottocategorie o opzioni in un menu a discesa annidato.
Ad esempio, se si dispone di un componente di input cascader per selezionare una categoria di prodotto, il primo menu a discesa può mostrare tutte le categorie disponibili, come “Electronics”, “Abbigliamento” e “Libri”. Quando un utente seleziona “Electronics”, la cascata si aggiornerà per mostrare le sottocategorie di elettronica, come “Phones”, “Laptops”, e “Tablets”. Ciò consente agli utenti di navigare rapidamente e facilmente attraverso i dati gerarchici e selezionare l’opzione di cui hanno bisogno.
Proprietà disponibili di Cascader. JavaScript può essere scritto per leggere o modificare informazioni sui componenti.
Proprietà | Descrizione |
---|---|
Sorgente Dati | Ogni opzione deve essere formato JSON e contenere due chiavi, valore ed etichetta. Utilizzando arrays, è possibile creare opzioni allo stesso livello. E le opzioni figlio possono essere create utilizzando l’attributo “children”. |
Valore predefinito | Il valore iniziale del componente. È possibile modificare dinamicamente il valore iniziale digitando JavaScript in {{}}. |
Segnaposto | Il valore verrà mostrato quando il campo di input è vuoto. |
Etichetta | Il nome del campo visualizzato all’utente |
Didascalia | Una didascalia utilizzata per descrivere in dettaglio il campo |
Etichetta nascosta | Imposta se visualizzare l’etichetta |
Posizione | Imposta la posizione dell’etichetta rispetto al componente |
Allineamento | Imposta l’allineamento (allineare a sinistra o a destra) dell’etichetta |
Width | Quando l’etichetta è sul lato sinistro del componente, impostare il rapporto di larghezza dell’etichetta. |
Gestore Eventi | Attiva interrogazioni, componenti di controllo o chiama altre API in risposta a eventi di componenti. |
Disabilitato | Controlla lo stato se il componente è disabilitato. Il componente non può essere modificato o focalizzato quando è disabilitato. |
Sola Lettura | Controllare lo stato se il componente è in sola lettura. Un componente di sola lettura può essere selezionato e messo a fuoco ma non può essere modificato. |
Mostra pulsante cancella | controllare se un pulsante chiaro è visualizzato nel campo di input |
Metodo di espansione | Imposta come si espande la cascader (facendo clic o hovering) |
Suggerimento | Gli utenti possono inserire il suggerimento del componente qui. Il suggerimento verrà mostrato quando è messo a fuoco. Il formato Markdown è supportato. |
Hidden | Controllare dinamicamente se il componente è nascosto. È possibile modificare lo stato nascosto attraverso il valore booleano dinamico. |
È possibile utilizzare altri componenti per controllare il componente. Sosteniamo i due metodi seguenti:
Per impostare l’opzione selezionata, ad esempio, {{”value1”}}
Proprietà | Descrizione |
---|---|
Valore | Input value |
Per cancellare il valore del componente selezionato
Esempio Di Utilizzo:
Il componente Cascader supporta l’ascolto dell’evento onChange
di altri componenti utilizzando il sistema di eventi integrato. Impostalo seguendo questi passaggi di esempio:
onChange
di un componente di un gruppo radio, si aggiungerebbe un trigger di evento a quel componente di gruppo radio.Componente di controllo
in azione, seleziona il componente Cascader
che vuoi aggiornare come obiettivo dell’evento.SetValue
e seleziona il valore appropriato per il componente Cascader. Questo sarà il valore che il componente Cascader ha e verrà aggiornato quando l’evento viene attivato.Dopo aver impostato i trigger dell’evento, il componente di ingresso Cascader si aggiornerà automaticamente ogni volta che l’evento onChange
viene attivato sugli altri componenti. Questo consente di creare interfacce dinamiche che rispondono all’input dell’utente in tempo reale, rendendo più facile per gli utenti la navigazione e l’interazione con la tua applicazione.
Evento | Descrizione |
---|---|
Cambia | Quando un utente cambia il valore dell’opzione selezionata |
Focus | Quando un utente sposta il cursore del mouse sul componente cascader |
Blur | Quando un utente viene fatto selezionando le opzioni e terminando di concentrarsi sul componente cascader |
Il componente ha alcuni dati comunemente usati, che possono essere chiamati tramite {{componentName.propertyName}}
nell’app.
Nome proprietà | Descrizione |
---|---|
dataSourceMode | la modalità della sorgente dati nella cascata (dinamica predefinita) |
displayName | il nome di questo componente (ossia cascader1) |
espandiTrigger | eventi di attivazione (clic) |
valore | Valore selezionato |
etichetta | valore dell’etichetta |
labelAllinea | allineamento dell’etichetta cascader (sinistra o destra) |
labelPosizione | posizione dell’etichetta cascader (sinistra o destra) |
labelWidth | il numero intero che rappresenta la larghezza dell’etichetta |
segnaposto | valore segnaposto |
Esempio: {{cascader1.value[0]}
Successivamente, dimostreremo come mappare i dati dalla sorgente dati alle opzioni nella cascader dinamicamente.
Creiamo una tabella in Supabase chiamata project
, e una sottotabella chiamata therapist
allineata da project_id
.
Quindi possiamo creare una nuova azione per Supabase dall’elenco delle azioni, elencando tutti i dati nel progetto e chiamato supabasedb1
SELECT [project.id](http://project.id/) as project_id, [therapist.name](http://therapist.name/) as therapist_name from therapist join project on therapist.project_id = [project.id](http://project.id/)
Successivamente, possiamo enable
la sezione transformer
sotto la sezione Seleziona. All’interno dell’area di testo, possiamo catturare solo i valori e le etichette di cui abbiamo bisogno dai dati e trasformarli in opzioni cascader-friendly utilizzando JavaScript.
const transformedArray = data.reduce((acc, current) => {
const existing = acc.find((item) => item.value === current. roject_id);
if (existing) {
const therapist = { value: current.therapist_id, label: current.therapist_name };
existing. hildren.push(therapist);
} else {
const project = { value: current. roject_id, etichetta: current.project_name, children: [] };
const therapist = { value: current.therapist_id, label: current.therapist_name };
project.children. ush(therapist);
acc.push(project);
}
return acc;
}, []);
return transformedArray;
L’azione finale deve essere visualizzata come
Clicca su Salva
e Esegui
per attivare questa azione.
Dopo aver trascinato un componente cascader sulla tela, possiamo fare clic per configurare la sua sorgente dati in {{supabasedb1.data}}
Opzionale: qui abbiamo impostato un valore predefinito di {{['a', '1']}}
per le corrispondenti {{['Psychotherapy'], ['James']}}
etichette.