我正在尝试找到在React Native Expo中在ltr和rtl视图之间切换的解决方案

问题描述 投票:0回答:1

我正在尝试找到在 React Native Expo 中在 ltr 和 rtl 视图之间切换的解决方案。我尝试过这个解决方案:

import * as Updates from "expo-updates";

import {
  I18nManager,
} from "react-native";
// i18 is intialised object of i18next

const changeLanguage = (value) => {
    i18n
      .changeLanguage(value)
      .then(() => {
        setLanguage(value);
        if (value === "ar") {
          if (true && Platform.OS !== "web") {
            I18nManager.allowRTL(true);
            I18nManager.forceRTL(true);
            Updates.reloadAsync();
          }
        } else {
          I18nManager.allowRTL(false);
          I18nManager.forceRTL(false);
          Updates.reloadAsync();
        }
      })
      .catch((err) => console.log(err));
  };

但是

Updates.reloadAsync();
会导致错误:

错误:您无法在生产应用程序的开发模式下使用更新模块。要测试手动更新,请使用

expo publish
发布您的项目,并在此开发客户端中打开已发布的版本。

所以 rtl 到 ltr 和 ltr 到 rtl 不起作用。

我也尝试过expopublish,然后ltr到rtl也不起作用。请给我一个解决方案。您能否为我提供重新加载应用程序的替代解决方案,或者如果我在代码中遵循了任何错误,请帮助我。

react-native expo i18next expo-updates
1个回答
0
投票

正如错误消息所示,您不能在开发中使用

Updates.reloadAsync()
;相反,您可以使用
DevSettings.reload()
重新加载应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.