react-native-web 更新:TypeError:无法读取未定义的属性“样式”

Posted

技术标签:

【中文标题】react-native-web 更新:TypeError:无法读取未定义的属性“样式”【英文标题】:react-native-web update: TypeError: Cannot read property 'style' of undefined 【发布时间】:2021-09-07 09:29:42 【问题描述】:

注意:我的应用程序可以在我的 ../common/package.json 依赖项中使用 "react-native-web": "^0.11.*" 顺利编译和运行。

--

变化

更新 ../common/package.json -> "react-native-web": "^0.11.*""react-native-web": "^0.17.*"

重新启动过程(清理、安装、构建)后,应用程序现在在启动时显示此错误:

错误

TypeError: 无法读取未定义的属性“样式”

../common/node_modules/react-native-router-flux/src/Router.js

244 | ...
245 | sceneStyle: _reactNative.ViewPropTypes.style, 
246 | ...

...由于 react-native-web 更新,涉及 ViewPropTypes 现在未定义。

--

问题:当 react-native-web(或其他依赖项)依赖项更新导致另一个依赖项出错时,解决这些问题的方法是什么?

【问题讨论】:

【参考方案1】:

可能的解决方案/快速修复

上述错误可以通过从库中删除任何 ViewPropTypes 用法来解决,或者通过在 ViewPropTypesundefined 时模拟 ViewPropTypes 功能来解决。

例如,针对我的情况,以下修复已解决了Router.js(第 135 行)中的上述错误: sceneStyle: ViewPropTypes ? ViewPropTypes.style : PropTypes.object

Router.js 的这个修复似乎使react-native-router-fluxreact-native-web v0.12+ 一起工作得很好,但我不确定库中是否还有ViewPropTypes 的用法。

但是,使用相关 PropTypes 类型模拟任何 ViewPropTypes 用法可能会解决此类问题

来源:https://github.com/aksonov/react-native-router-flux/issues/3707

【讨论】:

【参考方案2】:

来自 @necolasreact-native-web 创建者)在 GitHub 上的回答:“阅读自 0.11 以来的 6 个次要版本更新中的每一个的发行说明,并采取相应措施: https://github.com/necolas/react-native-web/releases

【讨论】:

以上是关于react-native-web 更新:TypeError:无法读取未定义的属性“样式”的主要内容,如果未能解决你的问题,请参考以下文章

nextjs + react-native-web + styled-components :warnOnce

使用 react-native-web 实现组件

react-native-web 的反应导航?

如何修复导入错误:来自“react-native-web”的“requireNativeComponent”

如何将react-native-web应用程序部署到heroku?

将 react-native-web 添加到现有的 react-native 应用程序时出错