Guia de Atualização (v4 -> v5)
Tradução Beta Não Oficial
Esta página foi traduzida por PageTurner AI (beta). Não é oficialmente endossada pelo projeto. Encontrou um erro? Reportar problema →
Alterações de API que Quebram Compatibilidade
- A função de callback para formatação de rich text não é mais variádica.
Antes:
new IntlMessageFormat('a<b>strong</b>').format({
b: (...chunks) => <strong>{chunks}</strong>,
})
Depois:
new IntlMessageFormat('a<b>strong</b>').format({
b: chunks => <strong>{chunks}</strong>,
})
- A prop render do
FormattedMessagenão é mais variádica.
Antes:
<FormattedMessage defaultMessage="a<b>strong</b>">
{(...chunks) => <b>{chunks}</b>}
</FormattedMessage>
Depois:
<FormattedMessage defaultMessage="a<b>strong</b>">
{chunks => <b>{chunks}</b>}
</FormattedMessage>
- Usar
FormattedMessagesem um contextointlcausará falha imediata.
Por que estamos fazendo essas alterações?
A função de callback para formatação de rich text não é mais variádica
-
Recebemos feedback da comunidade de que funções callback variádicas não são ergonômicas.
-
Existe também um problema onde os
chunksdo React não possuem keys, causando warnings durante o desenvolvimento. -
Os
chunkspor si só não são suficientes para renderizar tags duplicadas, como<a>link</a> and another <a>link</a>onde você deseja renderizar 2hrefs diferentes para a tag<a>. Neste casoa: chunks => <a>{chunks}</a>não basta, especialmente com conteúdos idênticos. Futuramente podemos adicionar outro argumento que pode conter metadados para diferenciar os 2 elementos.
A prop render do FormattedMessage não é mais variádica
- Mesmos motivos citados acima.
FormattedMessage sem contexto intl causa falha imediata
- Baseado em feedback de desenvolvedores da Dropbox. O
FormattedMessagetinha um renderizador padrão em inglês que mascarava problemas de configuração doProvider, fazendo com que não fossem detectados durante os testes.