Sto provando a migrare la mia applicazione da React 0.12 a React 0.14 e sto riscontrando problemi con gli elementi opzione che utilizzano gli oggetti FormattedMessage react-intl inseriti all'interno di tag selezionati.Come utilizzare FormattedMessage all'interno di un tag di opzione in React 0.14?
Ecco un codice di esempio JSX:
<select>
<option value="value1"><FormattedMessage message={this.getIntlMessage('key1')}/></option>
<option value="value2"><FormattedMessage message={this.getIntlMessage('key2')}/></option>
</select>
Questo codice funziona bene in Reagire 0,12 e vedo i miei elementi opzionali tradotti.
In reagire 0.14, ho ottenuto questo errore:
Only strings and numbers are supported as <option> children.
ho tracciato il messaggio a questo changeset a reagire che è accaduto all'inizio di quest'anno:
https://github.com/facebook/react/pull/3847/files
Come posso risolvere il problema ? Non posso essere l'unico a cercare di utilizzare elementi di opzione internazionalizzati?
Se l'OP non ha bisogno di fare la formattazione potrebbe semplicemente fare 'this.getIntlMessage ('key1')' all'interno dell'opzione? Un po 'di svista per non esporre l'intero metodo di traduzione sottostante imo –
Hai ragione, nel caso dell'OP, 'this.getIntlMessage (' key1 ')' restituirebbe il messaggio corretto. Si noti che la V2.0.0 API espone i metodi di traduzione sul contesto. –
Sembra che funzionerà a patto che non utilizzi alcun segnaposto .... Non posso credere che non ci sia un modo stabile per farlo? –