react-i18next:将 t 函数传递给所有 children 或在每个 child 中使用 useTranslation?

react-i18next: passing t function to all children or useTranslation in every child?

我正在使用 react-i18next 翻译我的 React 应用。

对于每个不同的“主要”页面(从菜单导航),我得到 t() 函数和 useTranslation;对于这些页面的 children 组件,我将 t 和其他道具传递给 children.

我想知道我的做法是否正确?

在每个 child 中获得 tuseTranslation 而不是在他们的 parents 中更好吗?

恕我直言,在每个组件中使用 useTranslation 是更好的方法,因为:

  • 你的组件结构更加一致(导致统一
  • 您不必决定是采用一种方式还是采用另一种方式(这有助于 概念完整性,尤其是在团队合作时)
  • 您的组件更易于重用(因为它们不要求可以自​​己获得的东西)
  • 如果您使用 PropTypes 或 TypeScript,您只需编写更少的代码,因为所有类型都是自动推断的