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)
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)
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)
initialLanguage
object (undefined)
Last updated