Aller au contenu principal

Guide de mise à niveau (v4 -> v5)

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Changements cassants de l'API

  • La fonction de callback de formatage de texte riche n'est plus variadique.

Avant :

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

Après :

new IntlMessageFormat('a<b>strong</b>').format({
b: chunks => <strong>{chunks}</strong>,
})
  • La prop de rendu FormattedMessage n'est plus variadique.

Avant :

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

Après :

<FormattedMessage defaultMessage="a<b>strong</b>">
{chunks => <b>{chunks}</b>}
</FormattedMessage>
  • L'utilisation de FormattedMessage sans contexte intl échouera immédiatement.

Pourquoi ces changements ?

La fonction de callback de formatage texte riche n'est plus variadique

  • Nous avons reçu des retours de la communauté indiquant que les fonctions variadiques manquent d'ergonomie.

  • Un problème existe également avec les chunks React qui ne disposent pas de clés, générant des avertissements en développement.

  • Les chunks seuls sont insuffisants pour afficher des balises dupliquées, par exemple <a>link</a> and another <a>link</a> où deux href différents sont nécessaires pour la balise <a>. Dans ce cas, a: chunks => <a>{chunks}</a> ne suffit pas, surtout quand le contenu est identique. À l'avenir, nous pourrons ajouter un autre argument contenant des métadonnées pour distinguer les éléments.

La prop de rendu FormattedMessage n'est plus variadique

  • Mêmes raisons que ci-dessus.

Utiliser FormattedMessage sans contexte intl échouera immédiatement

  • Ce changement provient également de retours internes de Dropbox. Le rendu par défaut en anglais de FormattedMessage masquait des problèmes de configuration du Provider, empêchant leur détection pendant les tests.