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

React传递类实例作为props时子组件丢失原有属性和方法如何解决?

问题原因与解决方案

你存在非常明确的写法错误,核心问题是对React函数组件的入参规则理解有误:函数组件的第一个入参是所有传入属性组成的props对象,并不是你单独传入的chess属性本身。

你当前写法里子组件内打印的chess变量,实际是如下结构的props对象:

{
  chess: 你在App.js中创建的Chess类实例
}

你误以为打印的是Chess实例,实际打印的是外层props对象,自然看不到原实例的属性和方法。

正确写法

两种常用写法可解决问题:

  • 写法1:解构props直接获取对应属性
const ChildComponent = ({ chess }) => {
  console.log("chess", chess);
};
  • 写法2:先接收完整props对象,再按需读取属性
const ChildComponent = (props) => {
  console.log("chess", props.chess);
};

修改后打印的内容就和App.js中的Chess实例完全一致,原有实例属性和方法都可以正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:30:04