# react-native: Componentes de uso de ramas
URL: https://generaltranslation.com/es/docs/react-native/guides/branches.mdx
---
title: Componentes de uso de ramas
description: Cómo usar componentes de uso de ramas para contenido condicional en las traducciones
---
{/* GENERADO AUTOMÁTICAMENTE: No edites esto directamente. Edita la plantilla en content/docs-templates/. */}
Los componentes de uso de ramas permiten el renderizado condicional de contenido dentro de los componentes [``](/docs/react-native/api/components/t). Manejan lógica dinámica, como sentencias if/else y reglas de pluralización, y garantizan que todas las variaciones de contenido puedan traducirse correctamente.
## Componentes disponibles
* [``](/docs/react-native/api/components/branch): Contenido condicional según valores o estados
* [``](/docs/react-native/api/components/plural): Pluralización automática mediante reglas específicas de la configuración regional
## Inicio rápido
Los componentes de uso de ramas se usan dentro de [``](/docs/react-native/api/components/t) para manejar la lógica condicional:
```jsx
import { T, Branch, Plural, Num, Var } from 'gt-react-native';
function NotificationPanel({ user, messageCount }) {
return (
{user.name} is currently online
}
away={{user.name} is away
}
>
{user.name} status unknown
You have {messageCount} message}
other={You have {messageCount} messages
}
/>
);
}
```
## Cómo funcionan los componentes de uso de ramas
Los componentes de uso de ramas resuelven el renderizado condicional dentro de las traducciones de la siguiente manera:
1. **Reemplazan los operadores ternarios** y la lógica condicional dentro de [``](/docs/react-native/api/components/t)
2. **Proporcionan contenido alternativo** cuando las condiciones no coinciden con los valores esperados
3. **Permiten traducir** todas las variaciones posibles del contenido
4. **Aplican automáticamente las reglas de pluralización** según la configuración regional
```jsx
// ❌ Esto falla - lógica condicional en
{isActive ? 'User is active' : 'User is inactive'}
// ✅ Esto funciona - lógica condicional con uso de ramas
User is active}
false={User is inactive
}
/>
```
## Guía de componentes
### Branch - Contenido condicional
Usa [``](/docs/react-native/api/components/branch) para cualquier caso de renderizado condicional en función de valores o estados:
```jsx
// Visualización del estado del usuario
Administrator Dashboard}
user={User Dashboard
}
guest={Guest Access
}
>
Access level unknown
// Condiciones booleanas
Welcome back!}
false={Please log in
}
/>
// Niveles de suscripción
Upgrade to unlock premium features}
premium={Enjoy your premium experience
}
enterprise={Contact support for enterprise solutions
}
>
Subscription status unavailable
```
### Plural - Pluralización inteligente
Usa [``](/docs/react-native/api/components/plural) para contenido que cambia en función de la cantidad:
```jsx
// Pluralización básica
{itemCount} item in cart}
other={{itemCount} items in cart
}
/>
// Manejo del cero
No new notifications}
one={{notifications} notification
}
other={{notifications} notifications
}
/>
// Pluralización compleja (sigue las reglas Unicode CLDR)
Due today}
one={Due in {days} day
}
few={Due in {days} days
}
many={Due in {days} days
}
other={Due in {days} days
}
/>
```
### Combinar con componentes de variable
El uso de ramas y los componentes de variable se integran sin problemas:
```jsx
Order {order.id} is pending.
Total: {order.total}
}
shipped={
Order {order.id} shipped on {order.shippedDate}
}
delivered={
Order {order.id} was delivered successfully
}
>
Order status unknown
```
## Cuándo usar componentes de uso de ramas
### Reemplazar operadores ternarios
Convierte la lógica condicional para usarla dentro de [``](/docs/react-native/api/components/t):
```jsx
// ❌ No se puede usar un operador ternario en
{isActive ? Active user
: Inactive user
}
// ✅ Usa Branch en su lugar
Active user}
false={Inactive user
}
/>
```
### Manejar varias condiciones
Reemplace las sentencias `switch` o varias condiciones `if/else`:
```jsx
// ❌ Lógica condicional compleja
{status === 'loading' ? Loading...
:
status === 'error' ? Error occurred
:
status === 'success' ? Success!
:
Unknown status
}
// ✅ Lógica de uso de ramas limpia
Loading...}
error={Error occurred
}
success={Success!
}
>
Unknown status
```
### Reglas de pluralización
Reemplaza el manejo manual del plural:
```jsx
// ❌ Pluralización manual
{count === 1 ? 1 item
: {count} items
}
// ✅ Pluralización automática
{count} item}
other={{count} items
}
/>
```
## Uso independiente
Los componentes de uso de ramas pueden usarse fuera de [``](/docs/react-native/api/components/t) para lógica pura sin traducción:
```jsx
// Renderizado condicional puro
}
light={}
>
// Pluralización pura
}
other={}
/>
```
## Problemas comunes
### Claves de rama faltantes
Proporciona siempre contenido alternativo para los valores que no coincidan:
```jsx
// ❌ Sin alternativa para valores inesperados
}
user={}
// ¿Qué pasa si userRole es "moderator"?
/>
// ✅ Incluye siempre una alternativa
}
user={}
>
{/* Alternativa para cualquier otro valor */}
```
### Formas plurales incompletas
Proporciona las formas plurales necesarias para tu configuración regional predeterminada:
```jsx
// ❌ Falta la forma "other"
1 item}
// ¿Y qué pasa con 0, 2, 3, etc.?
/>
// ✅ Incluir las formas necesarias
No items}
one={1 item
}
other={{count} items
}
/>
```
### Lógica anidada compleja
Aunque esto funciona, recomendamos que el uso de ramas sea sencillo y evitar un anidamiento profundo:
```jsx
// ❌ Uso de ramas anidadas complejo
{/* Difícil de leer y mantener */}
// ✅ Simplifica la lógica o usa múltiples componentes
}
active-offline={}
inactive-online={}
>
```
Consulta la [documentación de Unicode CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules) para obtener más información sobre las reglas de pluralización.
## Próximos pasos
* [Guía de traducción de cadenas](/docs/react-native/guides/strings) - Traduce texto sin formato sin JSX
* [Guía de contenido dinámico](/docs/key-concepts/dynamic-content) - Maneja la traducción en tiempo de ejecución
* Referencias de la API:
* [Componente ``](/docs/react-native/api/components/branch)