Saltar al contenido principal

Guía de actualización (v4 a v5)

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Cambios importantes en la API

  • La función callback de formato de texto enriquecido ya no es variádica.

Antes:

new IntlMessageFormat('a<b>strong</b>').format({
b: (...chunks) => <strong>{chunks}</strong>,
})

Después:

new IntlMessageFormat('a<b>strong</b>').format({
b: chunks => <strong>{chunks}</strong>,
})
  • La prop render de FormattedMessage ya no es variádica.

Antes:

<FormattedMessage defaultMessage="a<b>strong</b>">
{(...chunks) => <b>{chunks}</b>}
</FormattedMessage>

Después:

<FormattedMessage defaultMessage="a<b>strong</b>">
{chunks => <b>{chunks}</b>}
</FormattedMessage>
  • Usar FormattedMessage sin un contexto intl fallará inmediatamente.

¿Por qué realizamos estos cambios?

La función callback de formato de texto enriquecido ya no es variádica

  • Recibimos comentarios de la comunidad indicando que la función callback variádica no es ergonómica.

  • Existe un problema donde los chunks de React no incluyen keys, generando advertencias durante el desarrollo.

  • Los chunks por sí solos no bastan para renderizar etiquetas duplicadas, como <a>link</a> and another <a>link</a> donde necesitas diferentes hrefs para la etiqueta <a>. En estos casos a: chunks => <a>{chunks}</a> es insuficiente, especialmente con contenido idéntico. Futuras versiones podrían incluir un argumento adicional con metadatos para distinguir entre los 2 elementos.

La prop render de FormattedMessage ya no es variádica

  • Mismas razones que el caso anterior.

Usar FormattedMessage sin un contexto intl fallará inmediatamente

  • Basado en feedback de desarrolladores internos de Dropbox. El renderizador inglés predeterminado de FormattedMessage oculta problemas de configuración del Provider, evitando su detección durante pruebas.