我的本机应用程序有问题。我已升级到上一个react-native(0.61.4),并将我的android SDK更新到28(用于在Google Play上发布)。
但是当我单击一些带有动画的按钮时,我会出错。
不变违反:分派了不受支持的顶级事件类型“ onGestureHandlerStateChange”
我的react-native应用程序可与android SDK 27配合使用(无需更改package.json)
我的主要包裹:
"react": "16.9.0",
"react-native": "^0.61.4",
"react-navigation": "^3.11.1",
"react-navigation-drawer": "^2.3.3",
"react-native-reanimated": "^1.4.0",
"react-native-gesture-handler": "^1.5.0",
"react-navigation-stack": "^1.10.3",
"react-navigation-tabs": "^2.5.6",
我已尝试更新反应导航,或尝试https://github.com/kmagiera/react-native-gesture-handler/issues/320#issuecomment-443815828,但无济于事
答案 0 :(得分:0)
升级RN0.61.4后,我在Android产品上也遇到了同样的问题。
现在它已解决,基本上是由于JS的异步加载所致。 该处理程序注册得太晚,因此引发此错误。
因此,要解决此问题,请将其添加到主条目(index.js):
import 'react-native-gesture-handler';
if (Platform.OS === 'android') {
const { UIManager } = NativeModules;
if (UIManager) {
// Add gesture specific events to genericDirectEventTypes object exported from UIManager native module.
// Once new event types are registered with react it is possible to dispatch these events to all kind of native views.
UIManager.genericDirectEventTypes = {
...UIManager.genericDirectEventTypes,
onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },
onGestureHandlerStateChange: {
registrationName: 'onGestureHandlerStateChange',
},
};
}
}
我希望它将对您有所帮助。