You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Expo后使用react-native-star-rating遇TypeError问题求助

解决Expo升级后react-native-star-rating组件报错问题

问题原因

react-native-star-rating是较旧的库,Expo升级后对应的React Native版本(0.68+)移除了Text.propTypes.allowFontScaling,且propTypes已从react-native核心包迁移到单独的prop-types包,导致组件读取未定义的属性报错,进而引发AppRegistry未注册的连锁问题。

用patch-package打补丁步骤

  1. 安装patch-package工具
    用npm或yarn安装开发依赖:

    npm install patch-package --save-dev
    # 或者yarn
    yarn add patch-package postinstall-postinstall --dev
    
  2. 修改组件源码
    找到项目中node_modules/react-native-star-rating/src/StarRating.js文件,做两处修改:

    • 在文件顶部导入prop-types包:
      import PropTypes from 'prop-types';
      
    • 找到组件propTypes定义里的allowFontScaling行,把Text.propTypes.allowFontScaling替换为PropTypes.bool:
      // 原代码
      allowFontScaling: Text.propTypes.allowFontScaling,
      // 修改后
      allowFontScaling: PropTypes.bool,
      

    保存修改后的文件。

  3. 生成补丁文件
    在项目根目录运行命令生成补丁:

    npx patch-package react-native-star-rating
    

    执行后会在项目根目录生成patches/react-native-star-rating+[你的组件版本号].patch文件,这个文件要提交到版本控制系统。

  4. 配置自动应用补丁
    打开package.json,在scripts字段里添加postinstall脚本:

    "scripts": {
      // 其他脚本...
      "postinstall": "patch-package"
    }
    

    这样后续执行npm install或yarn install时,补丁会自动应用到node_modules里的组件。

完成以上步骤后,重启Metro服务(npx expo start --clear),报错即可解决。

内容的提问来源于stack exchange,提问作者Paulo Avila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:16:06