Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何调用React本机函数并使用返回值_Javascript_Java_React Native - Fatal编程技术网

Javascript 如何调用React本机函数并使用返回值

Javascript 如何调用React本机函数并使用返回值,javascript,java,react-native,Javascript,Java,React Native,我想调用React原生Javascript函数,并将一些值返回到原生java代码。到目前为止,这似乎只能通过事件来实现。然而,我还没有弄清楚如何从React本机事件返回一个值并在Java中接收它 如何从Java调用React本机Javascript函数并获取其返回值 根据文档,以下是如何侦听事件: import { NativeEventEmitter, NativeModules } from 'react-native'; ... componentDidMount() { .

我想调用React原生Javascript函数,并将一些值返回到原生java代码。到目前为止,这似乎只能通过事件来实现。然而,我还没有弄清楚如何从React本机事件返回一个值并在Java中接收它

如何从Java调用React本机Javascript函数并获取其返回值

根据文档,以下是如何侦听事件:

import { NativeEventEmitter, NativeModules } from 'react-native';
...

  componentDidMount() {
    ...
    const eventEmitter = new NativeEventEmitter(NativeModules.ToastExample);
    eventEmitter.addListener('EventReminder', (event) => {
       console.log(event.eventProperty) // "someValue"
    }
    ...
  }
然后用Java调用它们:

import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.Arguments;
...
private void sendEvent(ReactContext reactContext,
                       String eventName,
                       @Nullable WritableMap params) {
  reactContext
      .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
      .emit(eventName, params);
}
...
WritableMap params = Arguments.createMap();
params.putString("eventProperty", "someValue");
...
sendEvent(reactContext, "EventReminder", params);  
提前谢谢大家