我一直在使用具有本机模块的React本机应用程序。能够导出在本机一侧定义的枚举到JS侧的枚举会很高兴。在iOS上,您可以在本机模块中定义一个常数stoexport方法,例如:
- (NSDictionary *)constantsToExport
{
return @{ @"firstDayOfTheWeek": @"Monday" };
}
但是,在Android上似乎并不是一个好方法。我是否缺少任何东西,或者根本没有提供?谢谢!
根据文档:http://facebook.github.io/react-native/releases/0.41/docs/native-modules-android.html#native-modules
您不需要将常量放在basejavamodule.java中extends ReactContextBaseJavaModule
的每个类都有可选方法getConstants()
一种称为getConstants的可选方法返回常数值 暴露于JavaScript。它的实施不是必需的,但是非常 对于需要从 JavaScript到同步中的Java。
@Override
public Map<String, Object> getConstants() {
final Map<String, Object> constants = new HashMap<>();
constants.put(DURATION_SHORT_KEY, Toast.LENGTH_SHORT);
constants.put(DURATION_LONG_KEY, Toast.LENGTH_LONG);
return constants;
}
回答我自己的问题,以帮助以后可能遇到此问题的人。在BaseJavaModule.java
文件中,有以下方法:
/**
* @return a map of constants this module exports to JS. Supports JSON types.
*/
public @Nullable Map<String, Object> getConstants() {
return null;
}
这使您可以将常数导出到JavaScript。不过应该在文档中。