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

升级Expo后子类化React Native组件失效,如何恢复子类化使用模式

问题解决方案

报错原因

你遇到的报错是因为新版React Native中的TouchableHighlight已经重构为函数组件,而ES6类的extends关键字只能继承类或构造函数,无法继承函数组件,因此子类化模式直接失效。

解决方案

React官方长期推荐「组合优于继承」的组件复用逻辑,你要实现统一修改activeOpacity默认值的需求,用组件组合封装即可实现,不需要依赖继承:

import React from 'react';
import { TouchableHighlight } from 'react-native';

// 自定义Touchable组件,透传所有属性,统一设置默认属性
const Touchable = (props) => {
  return <TouchableHighlight {...props} />
}

Touchable.defaultProps = {
  activeOpacity: 0.3
}

export default Touchable;

如果原来的子类中有自定义生命周期、实例方法等逻辑,可将对应逻辑迁移到自定义组件中,函数组件使用Hooks即可实现原来类组件的所有生命周期能力。

关于是否能恢复子类化模式

函数组件本身不支持类继承机制,且React官方从未推荐过继承内置组件的开发模式,没有兼容方案可以直接恢复原来的子类化写法,建议直接迁移到组合模式即可,改造成本极低。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:42:02