# react-native: Derive URL: https://generaltranslation.com/it/docs/react-native/api/components/derive.mdx --- title: Derive description: Riferimento API per il componente Derive --- {/* GENERATO AUTOMATICAMENTE: non modificare direttamente. Modifica il template in content/docs-templates/. */} ## Panoramica Il componente `` viene usato per gestire la frammentazione delle frasi e i contenuti riutilizzabili senza compromettere la concordanza, la coniugazione e le variazioni nell'ordine delle parole. Nell'esempio seguente vengono create due traduzioni separate: "Il bel ragazzo gioca con la palla" e "La bella ragazza gioca con la palla". ```jsx function getSubject(gender) { return gender === 'male' ? 'boy' : 'girl'; } The beautiful {getSubject(gender)} plays with the ball. ; ``` Il componente `` indica allo strumento CLI di dereferenziare una chiamata di funzione e catalogare tutti i possibili contenuti restituiti da quella funzione, trattando ogni istruzione `return` come se fosse racchiusa in un componente ``. **Utilizzo avanzato:** Il componente `` è una funzionalità avanzata e deve essere usato con cautela, poiché può generare un numero sorprendentemente elevato di voci di traduzione. Inoltre, `` impone un requisito rigoroso: tutte le possibili permutazioni del contenuto devono poter essere analizzate staticamente. Per maggiori informazioni, consulta le note di rilascio di [gt-next@6.8.0](/devlog/gt-next_v6_8_0). *** ## Riferimento ### Props ### Descrizione | Prop | Descrizione | | ---------- | ----------------------------------------------------------------------------------- | | `children` | Contenuto statico. Lo strumento CLI analizzerà tutti i possibili valori restituiti. | ### Restituisce `React.JSX.Element` contenente il contenuto di cui è stato eseguito il rendering dalla chiamata di funzione, con una voce di traduzione separata per ogni risultato possibile. *** ## Comportamento ### Analisi in fase di build Durante la fase di build, lo strumento CLI analizza gli elementi figlio dei componenti `` e crea voci di traduzione separate per ogni possibile risultato. Questo consente di gestire correttamente la concordanza grammaticale e l'ordine delle parole tra lingue diverse. ### Requisiti Gli elementi figli dei componenti `` devono poter essere determinati in fase di build. La sintassi supportata include: * Valori letterali di tipo stringa, numero e booleano * Espressioni JSX con componenti `` e `` annidati * Operatori ternari * Chiamate di funzione (con risultati analizzabili staticamente) *** ## Esempi ### Utilizzo di base Usa `` per gestire i contenuti dinamici che incidono sulla struttura della frase. ```jsx title="BasicExample.jsx" copy import { T, Derive } from 'gt-react-native'; export default function Example({ gender }) { return ( The {gender === 'male' ? 'boy' : 'girl'} is beautiful. ); } ``` Questo genera due voci di traduzione: * "Il ragazzo è bello" * "La ragazza è bella" ### Con chiamate di funzione Usa `` per gestire il contenuto dinamico che influisce sulla struttura della frase all'interno di una chiamata di funzione. ```jsx title="BasicExample.jsx" copy import { T, Derive } from 'gt-react-native'; function getSubject(gender) { return gender === 'male' ? 'boy' : 'girl'; } export default function Example({ gender }) { return ( The {getSubject(gender)} is beautiful. ); } ``` ### Con variabili Combina `` con `` per gestire contenuti dinamici all'interno dei valori restituiti da funzioni statiche. ```jsx title="WithVariables.jsx" copy import { T, Derive, Var } from 'gt-react-native'; function getTitle(title) { return title === 'Mr.' ? 'Mr.' : 'Ms.'; } function getGreeting(title) { return ( <> Hello, {getTitle(title)}. How are you, {name}? ); } export default function Greeting({ title, name }) { return ( {getGreeting(title)} ); } ``` ### Più componenti Derive Presta attenzione quando usi più componenti ``, perché moltiplicano le voci di traduzione. ```jsx title="MultipleDerive.jsx" copy import { T, Derive } from 'gt-react-native'; function getSubject(gender) { return gender === 'male' ? 'boy' : 'girl'; } function getObject(toy) { return toy === 'ball' ? 'ball' : 'crayon'; } export default function PlayExample({ gender, toy }) { return ( {getSubject(gender)} plays with the{' '} {getObject(toy)}. ); } ``` Questo crea quattro voci di traduzione (2 × 2 combinazioni): * "il ragazzo gioca con la palla" * "il ragazzo gioca con il pastello" * "la ragazza gioca con la palla" * "la ragazza gioca con il pastello" ### Sintassi delle funzioni supportate ```jsx title="SupportedSyntax.jsx" copy function getExamples(key) { switch (key) { case 'literals': if (condition1) { return 'The boy'; } else if (condition2) { return 22; } else { return true; } case 'jsx': return ( <> Hello, {getTitle(title)}. How are you,{' '} {name}? ); case 'ternary': return condition ? 'The boy' : 'The girl'; case 'function_calls': return otherStaticFunction(); } } ``` *** ## Limitazioni ### Impatto sulle prestazioni L'uso di `` può causare una crescita esponenziale delle voci di traduzione. Ogni componente `` aggiuntivo moltiplica il numero totale delle traduzioni. ### Contenuto variabile Qualsiasi contenuto dinamico o variabile nei valori restituiti da funzioni statiche deve essere racchiuso in componenti ``. ```jsx // Corretto function getContent() { return ( <> Hello, {userName}! ); } // Errato - causerà errori di build function getContent() { return <>Hello, {userName}!; } ``` *** ## Note * Il componente `` è progettato per gestire la frammentazione delle frasi mantenendo la correttezza grammaticale nelle varie lingue. * Considera sempre l'impatto sulle prestazioni dell'uso di più componenti `` in una singola traduzione. * Tratta ogni istruzione `return` nelle funzioni statiche come se fosse racchiusa in un componente ``. * Usa `` con criterio: quando possibile, preferisci strutture di traduzione più semplici. ## Passaggi successivi * Per i contenuti variabili all'interno delle traduzioni, consulta il componente [``](/docs/react-native/api/components/var). * Per il componente di traduzione principale, consulta [``](/docs/react-native/api/components/t). * Per la versione stringa di ``, consulta [`derive`](/docs/react-native/api/strings/derive).