react native要作为Fragment页,嵌入到Activity中,需要用到ReactRootView类。具体操作就不做解释了。今天要记录的是TouchableOpacity的onPress方法
点击失效。花了一上午事件才找到原因。嵌入fragment的父activity必须得要在onResume, onPause, onDestroy中添加rn的host函数。代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26kotlin写法:
class MeActivity : AppCompatActivity(), DefaultHardwareBackBtnHandler {
/*省略*/
override fun invokeDefaultOnBackPressed() {
super.onBackPressed();
}
override fun onResume() {
super.onResume()
(application as ReactApplication).reactNativeHost.reactInstanceManager.onHostResume(this, this);
}
override fun onPause() {
super.onPause()
(application as ReactApplication).reactNativeHost.reactInstanceManager.onHostPause(this);
}
override fun onDestroy() {
super.onDestroy()
(application as ReactApplication).reactNativeHost.reactInstanceManager.onHostDestroy(this);
}
}
必须添加上述几个方法,不然onPress, console.warn等交互语句都失效