I18nextProvider 和 react-i18next 中的命名空间如何工作?

How working I18nextProvider, withNamespaces in in react-i18next?

我正在使用 I18nextProviderwithNamespaces.

在我的应用程序中使用 react-i18next
export const App = () => (
    <I18nextProvider i18n={i18n}>
      <App />
    </I18nextProvider>
);
export default withNamespaces()(ChildComponentOfApp);

但是我不明白I18nextProviderwithNamespaces的关系。他们不传递像 t function

这样的道具

The provider is responsible to pass the i18next instance passed in by props down to all the withNamespaces hocs or NamespacesConsumer render prop using react context api.

是为什么工作?这个渲染道具是 withNamespaces 中的东西吗?

我知道 withNamespaces 是 HOC,但即使阅读了 react-i18next 源代码,也混淆了 I18nextProviderwithNamespaces 之间的这种关系。

有人可以解释一下吗?

I18nextProvider -> 你传入一个包含要使用的 i18next 实例的 prop "i18n" -> Provider 使用 reactAPI 的上下文

将它传递到 JSX 树

withNamespaces -> 从上下文中获取 i18n 实例并将 t 函数传递给您的组件。