I am new to this but trying to create a bridge for my react native app. The issue I am having is on init function I am just calling RCTEventEmitter but nothing is being returned to react native. Here is my code
class RandomTestView(private val context: ThemedReactContext) : RelativeLayout(
context
) {
var messagesList: ArrayList<String>? = null
fun setMessages(messages: ReadableArray) {
messagesList = ArrayList()
if (messages != null) {
for (i in 0 until messages.size()) {
messages.getString(i)?.let { messagesList!!.add(it) }
}
}
}
private val activity: Activity?
init {
activity = context.currentActivity
if(activity != null)
{
context.getJSModule(RCTEventEmitter::class.java)
.receiveEvent(
id,
"onSizingDone", null
)
}
}
}
I have also tried using RCTDeviceEventEmitter but still no luck. Weird thing is if I move the code inside the setMessages function it triggers just fine. Can anyone please help. Thanks in advance.
EDIT
setMessages function is set up as React property. Here is the definition.
@ReactProp(name = "messages")
fun setMessages(view: RandomTestView, messages: ReadableArray) {
view.setMessages(messages)
}
CodePudding user response: