-
-
Save oun/395fabdc24cacbd78b1b37422b07e2c2 to your computer and use it in GitHub Desktop.
import { IntlProvider } from 'react-intl'; | |
const language = 'en'; | |
// Usually messages is declared in another file. | |
const messages = { | |
greeting: 'Hello' | |
} | |
export const mesg = defineMessages({ | |
greeting: { | |
id: 'greeting', | |
defaultMessage: 'Whats up' | |
} | |
}; | |
const { intl } = new IntlProvider({ locale: language, messages: messages }, {}).getChildContext(); | |
intl.formatMessage(mesg.greeting); // "Hello" | |
intl.formatNumber(1000); // "1,000" |
Is there anything wrong using this way inside the react components? It looks simpler than wrapping every component with injectIntl
and then accessing intl
prop. This way I can just import intl
into every component.
With the new update to react-intl, this no longer works. Anyone have an update?
With the new update to react-intl, this no longer works. Anyone have an update?
https://github.com/formatjs/react-intl/blob/master/docs/API.md#createintl
Hello, I found this createIntl method but I can't understand how to make it work in a Non React file.
Would anyone have a hint on how to implement it ?
Ok, found out. When they write :
// Call imperatively
intl.formatNumber(20)// Pass it to IntlProvider
{foo}
It means you can do one of them, both, but they are separate ways of using it. It's more : the first one OR the other.
outside components, such as in sagas
this may be helpful.