undefined 不是对象(正在计算 'require(37 ).PropTypes.shape')

undefined is not an object (evaluating 'require(37 ).PropTypes.shape')

将 Expo 从版本 21 升级到 24 后出现此错误。

看来我对 PropTypes 有疑问。

来自Expo v22.0.0,作者警告说

If you, or any libraries that you use. use View.propTypes.style you will need to change that to ViewPropTypes.style. You will only see errors for this in production — so be sure to test your app with development mode disabled.

但是我没有在我的本机反应代码中使用 PropTypes 但我想 SnackBar 中有一个函数有 PropTypes 我必须更新它们才能使用它。

我该如何解决这个问题?错误是说 Snackbar.js 代码有问题,但我不明白...

undefined is not an object (evaluating 'require(37     ).PropTypes.shape') <unknown>
    type.js:1:126 loadModuleImplementation
    require.js:191:12 guardedLoadModule
    require.js:138:36
_require
    require.js:118:20 <unknown>
    SnackBar.js:8:1003 loadModuleImplementation <<<<
    require.js:191:12 guardedLoadModule
    require.js:138:36
_require
    require.js:118:20 <unknown>
    SnackBarManager.js:5:22 loadModuleImplementation
    require.js:191:12 guardedLoadModule
    require.js:138:36
_require
    require.js:118:20 <unknown>
    index.js:1:86 loadModuleImplementation
    require.js:191:12 guardedLoadModule
    require.js:138:36
...

我确认 snackbar.js 没有 PropTypes

SnackBar 是开源的:react-native-snackbar-dialog

其他软件包也会发生这种情况。 moments.js 等等。升级打破了整个依赖关系,我无法弄清楚我做错了什么

cd node_modules/react-native-snackbar-dialog && yarn build 解决了我的问题。

其他东西包也一样。