L' <Formatted... />
Réagir composantes en react-intl
sont destinés à être utilisés dans le rendu des scénarios et ne sont pas destinés à être utilisés dans des espaces réservés, le texte de remplacement, etc. Ils ont rendu HTML, pas de texte brut, ce qui n'est pas utile dans votre scénario.
Au lieu de cela, react-intl
fournit un niveau inférieur de l'API pour exactement la même raison. Le rendu des composants eux-mêmes utiliser cette API sous le capot pour formater les valeurs dans le code HTML. Votre scénario probablement vous oblige à utiliser le niveau inférieur formatMessage(...)
API.
Vous devez injecter l' intl
votre objet dans votre composant à l'aide de l' injectIntl
HOC et puis il suffit de formater le message par le biais de l'API.
Exemple:
import React from 'react';
import { injectIntl, intlShape } from 'react-intl';
const ChildComponent = ({ intl }) => {
const placeholder = intl.formatMessage({id: 'messageId'});
return(
<input placeholder={placeholder} />
);
}
ChildComponent.propTypes = {
intl: intlShape.isRequired
}
export default injectIntl(ChildComponent);
Veuillez noter que je suis en utilisant certains ES6 fonctionnalités, afin de s'adapter en fonction de votre configuration.