目前,我们的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);