我像示例一样使用React-i18next
import React, { Suspense } from 'react';
import { useTranslation } from 'react-i18next';
function App() {
return (
<Suspense fallback="loading">
<MyComponent />
</Suspense>
);
}
但是Suspense正在破坏我的其他要素之一,即react-masonry-layout。有可能不使用Suspense吗?
谢谢。
答案 0 :(得分:0)
react-i18nnext默认使用Suspense。如果您不想使用它,则必须在配置中指定它。如果您有i18n配置文件,则可以在init对象的react部分中将useSuspense标志设置为false。
//Example config
i18n
.use(Backend)
.use(LanguageDetector)
.use(initReactI18next)
.init({
fallbackLng: "en",
debug: true,
resources: {
},
interpolation: {
escapeValue: false,
},
react: {
wait: true,
useSuspense: false,
},
})
或者您也可以在组件中设置标志。
<MyComponent useSuspense={false} />
请注意,选择不使用Suspense具有其含义。您必须编写检查以处理“未就绪”状态,即:在状态未就绪时让正在加载的组件呈现,而在状态就绪时让您的组件呈现。不这样做会导致翻译在加载之前呈现。>