Je me demandais s'il existe un moyen d'accéder aux paramètres régionaux actuellement définis avec React-Intl?
Disons que je crée ceci:
render() {
return (
<IntlProvider locale="en">
<App>
</IntlProvider>
);
}
Dans l'application, je voudrais faire quelque chose comme ceci, afin d'accéder aux paramètres régionaux que j'ai transmis à la IntlProvider
this.props.locale
Est-il possible de faire quelque chose comme ça?
Merci.
Vous pouvez obtenir les paramètres régionaux actuels dans n'importe quel composant de votre application en y accédant simplement à partir de "l'API d'injection" de React Intl:
import {injectIntl, intlShape} from 'react-intl';
const propTypes = {
intl: intlShape.isRequired,
};
const MyComponent = ({intl}) => (
<div>{`Current locale: ${intl.locale}`}</div>
);
MyComponent.propTypes = propTypes
export default injectIntl(MyComponent);
Oui, si vous souhaitez accéder aux paramètres régionaux actuels de n’importe quel composant enfant, le meilleur moyen est de lire context , car IntlProvider fournit un contexte. Définissez dans votre application ou tout autre composant le contexte que vous souhaitez. vouloir accéder à:
App.contextTypes = {
intl: PropTypes.object
};
Vous pouvez maintenant lire les paramètres régionaux actuels dans votre composant comme suit:
render() {
return (
<div>{this.context.intl.locale}</div>
)
}