# react-native: Componentes de bifurcación
URL: https://generaltranslation.com/es/docs/react-native/guides/branches.mdx
---
title: Componentes de bifurcación
description: Cómo usar componentes de bifurcación para contenido condicional dentro de las traducciones
---
{/* GENERADO AUTOMÁTICAMENTE: No lo edites directamente. Edita la plantilla en content/docs-templates/. */}
Los componentes de bifurcación permiten renderizar contenido de forma condicional dentro de los componentes [``](/docs/react-native/api/components/t). Gestionan lógica dinámica, como sentencias if/else y reglas de pluralización, y garantizan que todas las variaciones del 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 con reglas específicas de la configuración regional
## Guía rápida
Los componentes de bifurcación funcionan dentro de [``](/docs/react-native/api/components/t) para gestionar 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 bifurcación
Los componentes de bifurcación resuelven el renderizado condicional en las traducciones de las siguientes maneras:
1. **Reemplazan los operadores ternarios** y la lógica condicional dentro de [``](/docs/react-native/api/components/t)
2. **Proporcionan contenido de respaldo** cuando las condiciones no coinciden con los valores esperados
3. **Permiten traducir** todas las posibles variaciones de 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 ramificación
User is active}
false={User is inactive
}
/>
```
## Guía de componentes
### Branch - Contenido condicional
Usa [``](/docs/react-native/api/components/branch) para cualquier 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 el contenido que cambia según 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
}
/>
```
### Combinación con componentes de variable
La ramificación y los componentes de variable se integran a la perfección:
```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 bifurcación
### Reemplaza los operadores ternarios
Convierte la lógica condicional para usarla dentro de [``](/docs/react-native/api/components/t):
```jsx
// ❌ No se puede usar el operador ternario en
{isActive ? Active user
: Inactive user
}
// ✅ Usa Branch en su lugar
Active user}
false={Inactive user
}
/>
```
### Gestiona múltiples condiciones
Reemplaza 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 ramificación limpia
Loading...}
error={Error occurred
}
success={Success!
}
>
Unknown status
```
### Reglas de pluralización
Sustituye el manejo manual de los plurales:
```jsx
// ❌ Pluralización manual
{count === 1 ? 1 item
: {count} items
}
// ✅ Pluralización automática
{count} item}
other={{count} items
}
/>
```
## Uso autónomo
Los componentes de bifurcación se pueden usar fuera de [``](/docs/react-native/api/components/t) para implementar lógica pura sin traducción:
```jsx
// Renderizado condicional puro
}
light={}
>
// Pluralización pura
}
other={}
/>
```
## Problemas frecuentes
### Claves de rama faltantes
Proporciona siempre contenido de respaldo para los valores que no coincidan:
```jsx
// ❌ Sin fallback para valores inesperados
}
user={}
// ¿Qué pasa si userRole es "moderator"?
/>
// ✅ Incluir siempre un fallback
}
user={}
>
{/* Fallback para cualquier otro valor */}
```
### Formas de plural incompletas
Proporciona las formas de plural 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 compleja anidada
Aunque esto funciona, recomendamos mantener la lógica condicional simple y evitar un anidamiento profundo:
```jsx
// ❌ Anidamiento complejo de ramas
{/* Difícil de leer y mantener */}
// ✅ Simplifica la lógica o usa múltiples componentes
}
active-offline={}
inactive-online={}
>
```
Consulta más información sobre las reglas de pluralización en la [documentación de Unicode CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules).
## Próximos pasos
* [Guía de traducción de cadenas](/docs/react-native/guides/strings) - Traduce texto sin formato sin usar JSX
* [Guía de contenido dinámico](/docs/key-concepts/dynamic-content) - Gestiona la traducción en runtime
* Referencias de la API:
* [Componente ``](/docs/react-native/api/components/branch)