withNamespaces (v9)
Was introduced in v8.0.0. Not available in older versions.
The withNamespaces hoc is responsible for passing the t function to your component. It enables all the translation functionality provided by i18next. Further, it asserts your component gets re-rendered on language change or changes to the translation catalog itself (loaded translations).
To learn more about using the t function have a look at i18next documentation:
...
Sample
If not using the reactI18nextModule this hoc should be nested inside a I18nextProvider. Alternatively you can pass the i18next instance via prop i18n
.
Using with TypeScript
To help you using TypeScript and the @withNamespaces decorator here is a trival example:
Set defaults for all used withNamespaces
Most time you like to change those values for every component.
Set those on i18next init:
withNamespaces options:
option | type (default) | description |
wait | boolean (false) | assert all provided namespaces are loaded before rendering the component (can be set globally too) In most cases you like to set this to true. If not handling not ready by evaluating tReady. |
nsMode | string ('default') | default: namespaces will be loaded an the first will be set as default or fallback: namespaces will be used as fallbacks used in order provided |
innerRef | function or object (undefined) | either pass in a object React.createRef or a ref function like (c) => this.myRef = c; |
bindI18n | string ('languageChanged loaded') | which events trigger a rerender, can be set to false or string of events |
bindStore | string ('added removed') | which events on store trigger a rerender, can be set to false or string of events |
omitBoundRerenders | boolean (true) | Does not trigger rerenders while state not ready - avoiding unneeded renders on init |
i18n | object (undefined) | pass i18next via options (useful for next.js usage |
usePureComponent | boolean (false) | use shallowEqual on props change if set to true |
withNamespaces props:
name | type (default) | description |
i18n | object (undefined) | pass i18next instance by props instead of having it on context |
initialI18nStore | object (undefined) | pass in initial translations (useful for next.js usage) |
initialLanguage | object (undefined) | pass in initial language (useful for next.js usage) |
Last updated