Крючки должны использоваться внутри компонентов из-за того, как они выполняются по реакции. Они должны хранить состояние по отношению к компоненту. Подробнее о том, как работают хуки, вы можете прочитать в этой статье Дана Абрамова от React Team.
- Вы можете использовать крючок внутри другого компонента:
const App = props => {
const { i18n } = useLingui()
return <Navigation i18n={i18n} {...props} />
}
Или вы можете создать свой собственный HO C (компонент более высокого порядка), который вы можете использовать, как в коде, который вы разместили:
const withI18n = WrappedComponent => props => {
const { i18n } = useLingui()
return <WrappedComponent i18n={i18n} {...props} />
}
HO C используется следующим образом :
import * as React from "react";
import { withI18n } from "../withI18n";
const Navigation = ({ i18n, locales }) => (...);
export default withI18n(Navigation);