0
我正在使用react-native構建一個android應用程序,並且我想知道如何解決這種情況:在Java代碼中,某些更新必須通知javascript以刷新視圖!有沒有辦法讓視圖組件(由JS編寫)更新在反應原生的Android應用程序?
我正在使用react-native構建一個android應用程序,並且我想知道如何解決這種情況:在Java代碼中,某些更新必須通知javascript以刷新視圖!有沒有辦法讓視圖組件(由JS編寫)更新在反應原生的Android應用程序?
是的,這是可能的。有此頁面上的詳細信息:
你需要有發射信號的事件早在JavaScript的。
我還沒有在實踐中真正做到這一點,但我將盡快。讓我知道你是怎麼辦的。
要使用他們爲榜樣,在你的Java:
...
private void sendEvent(ReactContext reactContext,
String eventName,
@Nullable WritableMap params) {
reactContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit(eventName, params);
}
...
WritableMap params = Arguments.createMap();
...
sendEvent(reactContext, "keyboardWillShow", params);
然後在您的JS:
var { DeviceEventEmitter } = require('react-native');
...
var ScrollResponderMixin = {
mixins: [Subscribable.Mixin],
componentWillMount: function() {
...
this.addListenerOn(DeviceEventEmitter,
'keyboardWillShow',
this.scrollResponderKeyboardWillShow);
...
},
scrollResponderKeyboardWillShow:function(e: Event) {
this.keyboardWillOpenTo = e;
this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);
},
或者,你可以直接聆聽到您的JS事件:
...
componentWillMount: function() {
DeviceEventEmitter.addListener('keyboardWillShow', function(e: Event) {
// handle event.
});
}
...