Vai al contenuto principale

Guida all'Aggiornamento (da v4 a v5)

Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

Modifiche di Rottura nelle API

  • La funzione callback per la formattazione del rich text non è più variadica.

Prima:

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

Dopo:

new IntlMessageFormat('a<b>strong</b>').format({
b: chunks => <strong>{chunks}</strong>,
})
  • La prop render di FormattedMessage non è più variadica.

Prima:

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

Dopo:

<FormattedMessage defaultMessage="a<b>strong</b>">
{chunks => <b>{chunks}</b>}
</FormattedMessage>
  • L'uso di FormattedMessage senza un contesto intl causerà un errore immediato (fail fast).

Motivazioni di queste modifiche

La funzione callback per la formattazione del rich text non è più variadica

  • Abbiamo ricevuto feedback dalla comunità che la funzione callback variadica non è ergonomica.

  • Esiste inoltre un problema per cui i chunks di React non includono chiavi, causando warning durante lo sviluppo.

  • I chunks da soli non sono sufficienti per renderizzare tag duplicati, come <a>link</a> and another <a>link</a>, quando servono due href diversi per il tag <a>. In questo caso a: chunks => <a>{chunks}</a> non basta, specialmente con contenuti identici. In futuro potremmo aggiungere un argomento aggiuntivo con metadati per distinguere gli elementi.

La prop render di FormattedMessage non è più variadica

  • Stesse motivazioni di cui sopra.

L'uso di FormattedMessage senza un contesto intl causerà un errore immediato

  • Anche questo deriva dal feedback degli sviluppatori interni di Dropbox. FormattedMessage ha un renderer predefinito in inglese che maschera problemi di configurazione del Provider, impedendone l'individuazione durante i test.