![](/img/trans.png)
[英]TypeError: undefined is not an object (evaluating 'results.length') in Search Component
[英]TypeError: undefined is not an object (evaluating 'this._callListeners.bind')
我有一个不使用 Expo 的带有打字稿的react-native应用程序。 在 iOS 中运行时,在启动画面后出现以下错误。 我知道这可能与react-navigation
使用react-native-gesture-handler
的事实有关,但这也包含在我的应用程序中并链接到了它。 也可能是因为缺少 typescript 类型,但添加@types/react-navigation
也无济于事。
[error][tid:com.facebook.react.JavaScript] TypeError: undefined is not an object (evaluating 'this._callListeners.bind')
This error is located at:
in StackViewLayout (at withOrientation.js:30)
in withOrientation (at StackView.js:79)
in RCTView (at View.js:45)
in View (at Transitioner.js:215)
in Transitioner (at StackView.js:22)
in StackView (created by Navigator)
in Navigator (at createKeyboardAwareNavigator.js:12)
in KeyboardAwareNavigator (at createAppContainer.js:388)
in NavigationContainer (at App.tsx:69)
in Provider (at App.tsx:68)
in App (at renderApplication.js:34)
in RCTView (at View.js:45)
in View (at AppContainer.js:98)
in RCTView (at View.js:45)
in View (at AppContainer.js:115)
in AppContainer (at renderApplication.js:33)
我尝试过 react-native 链接,清理 react native 缓存,删除 node_modules 文件夹并重新安装,清理 npm 缓存,从头开始重新安装应用程序,重置 iOS 模拟器内容。
以下是我的 package.json 供参考:
"dependencies": {
"autobind-decorator": "^2.4.0",
"axios": "^0.18.0",
"base64-js": "^1.3.0",
"bluebird": "^3.5.3",
"crypto-js": "^3.1.9-1",
"firebase": "^5.8.2",
"firebase-nest": "^0.7.1",
"i18next": "^12.1.0",
"jsc-android": "^236355.1.1",
"lodash": "^4.17.11",
"mobx": "^5.6.0",
"mobx-firebase-store": "^1.2.1",
"mobx-react": "^5.3.6",
"moment": "^2.22.2",
"native-base": "^2.11.0",
"react": "16.6.3",
"react-native": "^0.58.5",
"react-native-gesture-handler": "^1.0.15",
"react-native-splash-screen": "^3.2.0",
"react-native-swift": "^1.2.2",
"react-native-swiper": "^1.5.13",
"react-native-track-player": "^1.1.2",
"react-native-vector-icons": "^6.3.0",
"react-navigation": "^3.0.9",
"@types/bluebird": "^3.5.24",
"@types/react": "^16.8.3",
"@types/react-native": "^0.57.36",
"@types/react-navigation": "^3.0.3",
"@types/react-test-renderer": "^16.0.3"
},
"devDependencies": {
"@babel/plugin-proposal-class-properties": "^7.3.3",
"@babel/plugin-proposal-decorators": "^7.1.6",
"@babel/preset-typescript": "^7.3.3",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "24.1.0",
"babel-preset-mobx": "^2.0.0",
"jest": "24.1.0",
"metro-react-native-babel-preset": "0.51.1",
"react-native-typescript-transformer": "^1.2.11",
"react-test-renderer": "16.6.3",
"tslint": "^5.11.0",
"tslint-config-prettier": "^1.16.0",
"tslint-config-standard": "^8.0.1",
"tslint-react": "^3.6.0",
"typescript": "^3.3.3"
},
还有我的 babelrc 内容:
{
"presets": [
"module:metro-react-native-babel-preset",
"mobx"
],
"plugins": [
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
],
[
"@babel/plugin-proposal-class-properties",
{
"loose": true
}
]
]
}
那些没有解决这个问题的人。 尝试在react-native run-android或ios之前在终端中运行react-native start。 就我而言,这完全是关于节点js窗口的
尝试将@babel/plugin-transform-flow-strip-types
到babel.config.js
:
{
"presets": [
"module:metro-react-native-babel-preset",
"mobx"
],
"plugins": [
['@babel/plugin-transform-flow-strip-types'],
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
],
[
"@babel/plugin-proposal-class-properties",
{
"loose": true
}
]
]
}
参见https://github.com/react-navigation/react-navigation/issues/5825和https://github.com/babel/babel/issues/8417
好的,经过16小时的尝试和错误,我设法找到了问题。 这是反应导航中的错误。 降级为"react-navigation": "^2.13.0"
解决了该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.