【问题标题】:Manually calling a React.PropTypes validation React native "^0.30.0"手动调用 React.PropTypes 验证 React native "^0.30.0"
【发布时间】:2025-12-17 23:30:01
【问题描述】:

我已经升级到最新版本的 React/RN: “反应”:“^15.2.1”, “反应原生”:“^0.30.0”,

我开始收到很多关于样式表的警告。我实际上没有对样式表使用 React.PropTypes 验证,那么为什么会抛出这些警告?

const styles = StyleSheet.create({
    welcome: {
        fontSize: 20,
        textAlign: "center",
        margin: 10,
    },

ExceptionsManager.js:76 警告:您正在手动调用 fontSize 属性的 React.PropTypes 验证函数 StyleSheet welcome。这已被弃用,并且在接下来将不起作用 主要版本。由于第三方原因,您可能会看到此警告 道具类型库。见https://facebook.github.io/react/warnings/dont-call-proptypes.html 了解详情。reactConsoleError@

ExceptionsManager.js:76 警告:您正在手动调用 textAlign 属性的 React.PropTypes 验证函数 StyleSheet welcome。这已被弃用,并且在接下来将不起作用 主要版本。由于第三方原因,您可能会看到此警告 道具类型库。见https://facebook.github.io/react/warnings/dont-call-proptypes.html

ExceptionsManager.js:76 警告:您正在手动调用 margin 属性的 React.PropTypes 验证函数 StyleSheet welcome。这已被弃用,并且在接下来将不起作用 主要版本。由于第三方原因,您可能会看到此警告 道具类型库。见https://facebook.github.io/react/warnings/dont-call-proptypes.html 了解详情。

【问题讨论】:

    标签: react-native


    【解决方案1】:

    React native 0.30 依赖于 react 15.2.0 而不是 15.2.1。所以你应该做rm -rf node_modules/react,从 package.json 中删除 react 版本,然后 npm install --save react@15.2.0。这应该可以解决问题。

    【讨论】:

    • 太棒了。虽然我没有使用 React native 0.30 ,但它解决了这个问题。
    • react@15.2.1 适用于 react-native@0.31.0
    • React 15.3.0 引入了一个新警告,但 React Native 尚未更新以修复其对 React 的使用。所以你可以坚持使用 15.2.1,直到这个问题在 React Native 中得到修复。
    【解决方案2】:

    我通过更改版本解决了这个问题(从 node_modules 中删除并安装包)。

    npm --save remove react react-native
    npm --save install react@15.2.1 react-native@0.31.0
    

    我没有重新部署本机代码。我之前在使用时看到了这些问题:

    "react": "^15.3.0",
    "react-native": "^0.31.0"
    

    【讨论】:

      【解决方案3】:

      是的,这只是 react 版本的一个错误。如果您更新到 15.3.0 版本,所有警告都会消失。参考:https://github.com/callemall/material-ui/issues/4854

      【讨论】:

      • 您提供的参考链接不支持您的回答。该链接显示:React 15.3.0 维护者似乎已弃用 PropTypes 验证功能。我的问题是说我实际上没有对样式表使用 React.PropTypes 验证,那么为什么要抛出警告?
      • 我也尝试升级到15.3.0
      • 更新到版本 15.2.0 不会删除您的警告,但更新到 15.3.0 会删除您在问题中提到的警告。
      • 不正确。更改为 15.2.0 已从警告中删除。
      • Touché,我会确保修改我的回答。尽管正如我的回答所暗示的那样,您的问题也将在更新到版本 15.3.0 时得到修复。这似乎对我有用。