我正在基于ClojureScript和React Native的重生平台上开发应用程序。我在 Android 平台上为我的应用程序禁用RTL时遇到问题。

这是在react-native中禁用RTL的代码,它完全可以正常工作:

const ReactNative = require('react-native');

ReactNative.I18nManager.allowRTL(false);

而且我认为这是cljs中上面的确切代码:
(def ReactNative (js/require "react-native"))

(.allowRTL (.I18nManager ReactNative) false)

但是,我收到此错误:

“对象不是函数(评估'my-app.android.core.ReactNative.I18nManager())”

react-native:“v0.50.3”

反应:“16.0.0”

重新架构:“0.9.2”

clojurescript:“1.9.542”

clojure:“1.9.0-alpha16”

screenshot of error

最佳答案

I18nManagerReactNative对象的字段(不是方法)。应该这样访问:(.-I18nManager ReactNative)。所以,相当于

ReactNative.I18nManager.allowRTL(false);

将会
(.allowRTL (.-I18nManager ReactNative) false)

08-03 23:05