是否有类似的方法可以从Android上的本机模块与iOS上的本机模块导出常数(使用ConstantStoExport)



我一直在使用具有本机模块的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。不过应该在文档中。

最新更新