问题:
Ios dev版本,使用第三方插件react-navigation做页面导航时,点返回按钮时报如下错:
Unsupported top level event type "onGestureHandlerStateChange" dispatched
开发环境如如下:
"react-native": "0.55.4",
"react-navigation": "^3.11.0",
"react-native-gesture-handler": "^1.0.16",
解决方案:
如果你的react-native 版本是0.52-0.55之间,则在app启动页index.js最上方加上如下代码:
import UIManager from "UIManager";
for (let k in UIManager) {
if (UIManager.hasOwnProperty(k) && UIManager[k] && UIManager[k].directEventTypes) {
UIManager[k].directEventTypes.onGestureHandlerEvent = {
registrationName: "onGestureHandlerEvent"
};
UIManager[k].directEventTypes.onGestureHandlerStateChange = {
registrationName: "onGestureHandlerStateChange"
};
}
}
添加后的 index.js:
import UIManager from "UIManager";
for (let k in UIManager) {
if (UIManager.hasOwnProperty(k) && UIManager[k] && UIManager[k].directEventTypes) {
UIManager[k].directEventTypes.onGestureHandlerEvent = {
registrationName: "onGestureHandlerEvent"
};
UIManager[k].directEventTypes.onGestureHandlerStateChange = {
registrationName: "onGestureHandlerStateChange"
};
}
}
import React, { Component } from 'react';
import {
AppRegistry
} from 'react-native';
import SetUp from './app/SetUp';
AppRegistry.registerComponent('loveChatApp', () =>SetUp );
如果是其他版本则在index.js最上方加上如下代码:
import 'react-native-gesture-handler'
参考文档:
https://github.com/kmagiera/react-native-gesture-handler/issues/320