0

将 react-i18next 与 Suspense 一起使用。

我想使用 init 回调选项来运行axios 拦截器,以确保所有请求都添加正确的标头语言。

我的问题是 init 回调不会停止 Suspense 来渲染它的孩子。我认为从 init 返回一个承诺会起作用,但事实并非如此。

暂停悬念来解决可能吗?

我的代码:

i18n
  .use(Backend)
  .use(initReactI18next)
  .init(
    {
      lng: 'en',
      fallbackLng: 'en',
      debug: true,
      react: {
        wait: true,
      },
    },
    function callback() {
      // this is the place where I want to halt Suspense until my logic is done

      return new Promise((res, rej) => {
        i18nInterceptor(i18n.language);
        setTimeout(() => {
          res();
        }, 10000);
      });
    }
  );

export default i18n;
4

0 回答 0