开发者问题收集

Expo SDK40 升级 TypeError: undefined 不是对象(正在评估“inspect.custom”)

2021-01-22
1662

升级 Expo SDK 时参考了 SDK 40 升级帖中的“弃用、重命名和删除”部分,从 SDK39 升级到 SDK40,结果出现错误。

expo diagnostics

  Expo CLI 4.0.17 environment info:
    System:
      OS: macOS 11.1
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 14.5.0 - /usr/local/bin/node
      Yarn: 1.22.10 - /usr/local/bin/yarn
      npm: 6.14.11 - /usr/local/bin/npm
    Managers:
      CocoaPods: 1.9.3 - /usr/local/bin/pod
    SDKs:
      iOS SDK:
        Platforms: iOS 14.3, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
    IDEs:
      Android Studio: 4.0 AI-193.6911.18.40.6514223
      Xcode: 12.3/12C33 - /usr/bin/xcodebuild
    npmPackages:
      expo: ^40.0.0 => 40.0.1 
      react: 16.13.1 => 16.13.1 
      react-dom: 16.13.1 => 16.13.1 
      react-native: https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz => 0.63.2 
      react-native-web: ~0.13.12 => 0.13.18 
      react-navigation: ^4.4.3 => 4.4.3 
    npmGlobalPackages:
      expo-cli: 4.0.17
    Expo Workflow: managed
{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@expo/react-native-action-sheet": "^3.8.0",
    "@expo/vector-icons": "^12.0.0",
    "@react-native-community/async-storage": "~1.12.0",
    "@react-native-community/checkbox": "^0.5.5",
    "@react-native-community/masked-view": "0.1.10",
    "@react-native-community/netinfo": "5.9.7",
    "@react-native-community/picker": "1.6.6",
    "@react-native-community/viewpager": "4.2.0",
    "@react-navigation/bottom-tabs": "^5.10.2",
    "@react-navigation/drawer": "^5.10.2",
    "@react-navigation/material-top-tabs": "5.2.16",
    "@react-navigation/native": "^5.8.2",
    "@react-navigation/stack": "^5.11.1",
    "axios": "^0.20.0",
    "debounce": "^1.2.0",
    "expo": "^40.0.0",
    "expo-app-loading": "^1.0.1",
    "expo-asset": "~8.2.1",
    "expo-av": "~8.7.0",
    "expo-background-fetch": "~8.6.0",
    "expo-barcode-scanner": "~9.1.0",
    "expo-blur": "~8.2.2",
    "expo-brightness": "~8.4.0",
    "expo-camera": "~9.1.0",
    "expo-contacts": "~8.6.0",
    "expo-device": "~2.4.0",
    "expo-file-system": "~9.3.0",
    "expo-font": "~8.4.0",
    "expo-linear-gradient": "~8.4.0",
    "expo-location": "~10.0.0",
    "expo-media-library": "~10.0.0",
    "expo-network": "~2.4.0",
    "expo-notifications": "~0.8.2",
    "expo-permissions": "~10.0.0",
    "expo-screen-capture": "^1.1.1",
    "expo-sms": "~8.4.0",
    "expo-splash-screen": "~0.8.1",
    "expo-sqlite": "~8.5.0",
    "expo-status-bar": "~1.0.3",
    "expo-task-manager": "~8.6.0",
    "expo-updates": "~0.4.1",
    "expo-video-player": "^1.6.1",
    "expo-video-thumbnails": "~4.4.0",
    "expo-web-browser": "~8.6.0",
    "fiction-expo-restart": "^1.0.5",
    "formik": "^2.2.1",
    "jsbarcode": "^3.11.3",
    "lodash": "^4.17.20",
    "lottie-ios": "3.1.8",
    "lottie-react-native": "~2.6.1",
    "moment": "^2.29.1",
    "prop-types": "^15.7.2",
    "query-string": "^6.13.6",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
    "react-native-animatable": "^1.3.3",
    "react-native-appearance": "~0.3.3",
    "react-native-auto-height-image": "^3.2.3",
    "react-native-autoheight-webview": "^1.5.4",
    "react-native-elements": "^2.3.2",
    "react-native-expo-image-cache": "^4.1.0",
    "react-native-extended-stylesheet": "^0.12.0",
    "react-native-gesture-handler": "~1.8.0",
    "react-native-image-gallery": "^2.1.5",
    "react-native-image-slider": "^2.0.3",
    "react-native-image-zoom-viewer": "^3.0.1",
    "react-native-modal": "^11.5.6",
    "react-native-qrcode-svg": "^6.0.6",
    "react-native-reanimated": "~1.13.0",
    "react-native-safe-area-context": "3.1.9",
    "react-native-screens": "~2.15.2",
    "react-native-scrollable-tab-view": "^1.0.0",
    "react-native-svg": "12.1.0",
    "react-native-tab-view": "2.15.1",
    "react-native-vector-icons": "^7.1.0",
    "react-native-web": "~0.13.12",
    "react-native-webview": "11.0.0",
    "react-navigation": "^4.4.3",
    "react-navigation-drawer": "^2.6.0",
    "react-navigation-header-buttons": "5.0.2",
    "react-redux": "^7.2.2",
    "react-refresh": "^0.9.0",
    "redux": "^4.0.5",
    "redux-thunk": "^2.3.0",
    "styled-components": "^5.2.1",
    "urijs": "^1.19.2"
  },
  "devDependencies": {
    "@babel/core": "^7.12.10",
    "@babel/plugin-syntax-class-properties": "^7.12.1",
    "@babel/runtime": "^7.12.1",
    "@react-native-community/eslint-config": "^2.0.0",
    "babel-jest": "^26.6.1",
    "babel-plugin-module-resolver": "^4.0.0",
    "babel-preset-expo": "8.3.0",
    "jest": "^26.6.1",
    "metro-react-native-babel-preset": "^0.60.0"
  },
  "private": true,
  "jest": {
    "preset": "react-native"
  }
}

错误

TypeError: undefined is not an object (evaluating 'inspect.custom')
- node_modules/react-native/Libraries/LogBox/LogBox.js:148:8 in registerError
- node_modules/react-native/Libraries/LogBox/LogBox.js:59:8 in errorImpl
- node_modules/react-native/Libraries/LogBox/LogBox.js:33:4 in console.error
- node_modules/expo/build/environment/react-native-logs.fx.js:27:4 in error
- node_modules/react-native/Libraries/Core/ExceptionsManager.js:104:6 in reportException
- node_modules/react-native/Libraries/Core/ExceptionsManager.js:171:19 in handleException
- node_modules/react-native/Libraries/Core/setUpErrorHandling.js:24:6 in handleError
- node_modules/expo-error-recovery/build/ErrorRecovery.fx.js:9:32 in ErrorUtils.setGlobalHandler$argument_0
- node_modules/regenerator-runtime/runtime.js:63:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:293:29 in invoke
- node_modules/regenerator-runtime/runtime.js:63:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:154:27 in invoke
- node_modules/regenerator-runtime/runtime.js:164:18 in PromiseImpl.resolve.then$argument_0
- node_modules/react-native/node_modules/promise/setimmediate/core.js:37:13 in tryCallOne
- node_modules/react-native/node_modules/promise/setimmediate/core.js:123:24 in setImmediate$argument_0
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:130:14 in _callTimer
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:181:14 in _callImmediatesPass
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:441:30 in callImmediates
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:387:6 in __callImmediates
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:135:6 in __guard$argument_0
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:364:10 in __guard
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:134:4 in flushedQueue
* [native code]:null in flushedQueue
* [native code]:null in invokeCallbackAndReturnFlushedQueue

我尝试修复它三天了,还是没能解决。

希望有人能帮助我,任何帮助我都会感激不尽。非常感谢!

3个回答

我也更新了 SDK40 的 Expo,同样的问题,所以我再次安装了更好、更优化的 38,尝试写信给他们的 expo - 社区: Expo-Community,expo - 开发人员和管理员都在那里

希望我能帮到你! https://forums.expo.io/

Feliks_JS
2021-01-22

升级 SDK 到 40 后,第三方库之一出现错误,是由 babel.config.js 中的“module-resolver”引起的。

我试过了,但找不到解决办法。 所以我把所有别名路径都改成相对路径,然后删除“module-resolver”。 然后就好了。

Justin
2021-01-27

我尝试更新 expo-notifications 的版本,但没有成功,因此请降级 expo-notifications

yarn add [email protected]

user16260408
2021-06-18