我正在尝试创建 HOC 并在内部使用自定义反应钩子。此外,为了使用钩子,我需要将 paras 传递给 HOC,但我只在函数体中使用钩子时出现错误。我的 HOC 是:
export const withUseAxisTranslate = (props) => {
const [t] = useAxisTranslate(props.namespace);
return (WrappedComponent) => (moreProps) => <WrappedComponent {...moreProps} t={t} />;
};
我的 useAxisTranslate 看起来像:
import { useSelector } from 'react-redux';
import { useTranslation } from 'react-i18next';
//This one is behave like regular i18 translate
//It returns like t() in array function and use axis name in order to find specific key by axis name
const useAxisTranslate = (namespace) => {
return [
(stringToTranslate) => {
const axisName = useSelector((state) => state.axisConfig.axis.name.toLowerCase());
const [t] = useTranslation(namespace);
return t(`${axisName}.${stringToTranslate}`);
},
];
};
export default useAxisTranslate;
我的呼吁是:
compose(
withWidth(),
withUseAxisTranslate({ namespace: 'header' }),
)(MyComponent);
我得到的错误是:
我不知道为什么会出现此错误,因为我在这里不使用类 感谢您的帮助