将属性从Android模块公开到ReactNative

时间:2019-06-19 10:05:18

标签: javascript android react-native kotlin

我正在为ReactNative编写Android本机模块。我公开了一些使用ReactMethod批注的方法。是否有可能公开财产,例如:

class MyNativeModule(reactAppContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactAppContext) {
    override fun getName(): String = "MyNativeModule"

    @ReactMethod
    fun nativeModule() {
        Log.d("MyNativeModule", "Native module method")
    }

    val nativeModuleProperty = "I am a native property" <-- I want to expose this property

}

并在ReactNative中使用它:

export const { nativeModule, nativeModuleProperty } = NativeModules.MyNativeModule
nativeModule() <-- this will print "Native module method"
console.log(nativeModuleProperty) <-- I want this to print "I am a native property"

我该如何实现?在Android上可以吗?

1 个答案:

答案 0 :(得分:0)

Kotlin 中,val属性在技术上是一种吸气方法。因此,只需注释getter而不是属性即可。

@get:[ReactMethod JvmName("nativeModuleProperty")]
val nativeModuleProperty = "I am a native property"