我尝试为Redux Action函数实现i18 n本地化,但是我经常收到不同的钩子错误。当我用这种方式实现i18 n时,我收到错误。
- 第428:17行:在函数“sendDataRequest”中调用React钩子“useTranslation”,该函数既不是React函数组件,也不是自定义React钩子函数。*
import { useTranslation } from "react-i18next";
export const sendDataRequest = (requestId) => {
const { t } = useTranslation();
return async (dispatch) => {
try {
dispatch(sendDataRequest());
await dataAPI.sendDataRequest({ requestId });
notification.success({
message: t('infoPage.requestSentSuccessfully'),
});
dispatch(sendDataSuccess());
} catch (error) {
dispatch(sendDataFailure());
console.error(error);
}
}
}
然后我移动了**const { t } = useTranslation();**在return语句内部。但是我收到了另一个错误x1c 0d1x。看起来我显然用错了。但是我找不到任何关于i18 n在操作中使用的例子。有人知道在操作中使用i18 b的可能性吗?
2条答案
按热度按时间iyfjxgzm1#
checkout https://github.com/i18next/react-i18next/issues/909
你需要访问你的
i18next
示例,你在你的代码库中创建的示例,通过这个示例你可以简单的调用i18n.t("my.translation.key")
来翻译,这是完全独立于react的。ruarlubt2#
是的,有可能。
1.您需要将您的i18n示例导入到您的actions/reducer中:
从"../i18n初始化文件"导入国际化;
1.之后,您可以在操作中使用示例,如下所示:
i18n.t("待翻译字符串");
或
更改语言("新位置"). then();