React Change语言不会重新呈现使用React.memo存储的组件



目前,我们的react项目使用可重复使用的组件库,该库使用I18nextProvider并为集成应用程序传递i18n实例。其中一个应用程序使用使用React.memo的功能组件来处理不同的用例。对于这些组件,当我们更改语言时,不会触发重新渲染。当我们手动进行更改时,它会反映为新的语言值。当我们更改语言时,是否可以强制使用React.memo的组件重新渲染?

是否有人面临类似的问题?memoize是否适用于处理翻译更新?

您可能没有将t作为备忘录依赖传递

const welcome = useMemo(() => <Trans t={t}>Welcome to React</Trans>, [t]);

顺便说一句:也可能你根本不需要备忘录。。。

同样面对这个问题,我发现的解决方法是在内存化组件中使用"useTranslation"挂钩(即使你不使用它中的t(((

const MyComponent = () => {
const { t } = useTranslation();
// or even
useTranslation();
return (
// some jsx here...
)
}
export default memo(MyComponent);

相关内容

  • 没有找到相关文章

最新更新