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

升级React Native至v0.70后仍报ViewPropTypes已弃用错误

解决React Native 0.70升级后ViewPropTypes报错白屏问题

1. 先自查项目自有代码

全局搜索项目内的ViewPropTypes,确认是否是自己的代码还在从react-native导入:

// 错误写法
import { ViewPropTypes } from 'react-native';

// 修正写法
import { ViewPropTypes } from 'deprecated-react-native-prop-types';

如果是自定义视图的属性校验,也可以直接用PropTypes.shape()替代,完全不需要依赖ViewPropTypes。

2. 排查未更新的第三方依赖

部分包表面更新到了最新版,但深层依赖或小众包可能仍在使用旧的ViewPropTypes,用命令定位问题:

  • Mac/Linux终端:grep -r "ViewPropTypes" node_modules/
  • Windows PowerShell:Select-String -Path node_modules\* -Pattern "ViewPropTypes" -Recurse
  • 还可以用npx react-native-find-duplicates检查重复的React Native依赖,避免版本冲突导致的隐藏问题。

找到问题包后:

  • 优先升级该包至最新稳定版;
  • 若包已停止维护,寻找功能替代包;
  • 临时用patch-package给包打补丁,将内部的import { ViewPropTypes } from 'react-native'替换为从deprecated-react-native-prop-types导入。

3. 彻底清理缓存

React Native的缓存经常引发奇怪问题,执行以下命令彻底清除:

# 重置Metro缓存
npx react-native start --reset-cache

# iOS端清理
cd ios
pod deintegrate
pod install
rm -rf ~/Library/Developer/Xcode/DerivedData

# Android端清理
cd android
./gradlew clean

4. 临时全局兼容(迫不得已时使用)

如果实在找不到问题根源,在项目入口文件(如index.js)中添加以下代码,全局注入ViewPropTypes以兼容旧包:

import { ViewPropTypes } from 'deprecated-react-native-prop-types';
import * as ReactNative from 'react-native';

if (!ReactNative.ViewPropTypes) {
  ReactNative.ViewPropTypes = ViewPropTypes;
}

注意这只是临时救急方案,长期仍需替换掉有问题的依赖,避免后续版本升级时再次出现冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:55:18