【问题标题】:React Native Expo - .reduce() lazy imports bundle configurationReact Native Expo - .reduce() 延迟导入包配置
【发布时间】:2021-08-17 14:54:42
【问题描述】:

我正在尝试重构以下代码

export const translationGetters = {
    spanish: () => require("./assets/languages/es/translations.json"),
    english: () => require("./assets/languages/en/translations.json"),
}

喜欢这个

const APP_LANGUAGES = [{ locale: "es", ... }, { locale: "en", ... }, ...];
export const translationGetters = APP_LANGUAGES.reduce(
  (o, { locale }) => ({
    ...o,
    [locale]: () => require(`./assets/languages/${locale}/translations.json`), // lazy
  }),
  {}
);

但此代码在默认捆绑配置中无效。为什么?我该如何解决这个问题?

谢谢。

【问题讨论】:

  • 无效是什么意思?你有错误吗?
  • @derpirscher "调用无效。构建包失败。"
  • 这可能是捆绑程序问题。你在构建和捆绑什么?
  • @MynockSpit 一个 Expo 应用程序
  • 对于它的价值,我认为你的原始代码要好得多。

标签: javascript reactjs react-native ecmascript-6


【解决方案1】:

您的APP_LANGUAGES 还需要包含您想要的translationGetters 键的全名。

const APP_LANGUAGES = [
    { locale: "es", lang: 'spanish' },
    { locale: "en", lang: 'english' }
];
export const translationGetters = APP_LANGUAGES.reduce(
  (o, { locale, lang }) => ({
    ...o,
    [lang]: () => require(`./assets/languages/${locale}/translations.json`), // lazy
  }),
  {}
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-07
    • 2022-08-24
    • 2019-05-09
    • 2023-04-04
    • 2019-01-10
    • 1970-01-01
    • 2022-01-15
    • 2023-01-08
    相关资源
    最近更新 更多