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

React中HOC模式无法正常工作,传入的props未生效

解决React HOC传递属性不生效的问题

嘿,我一眼就瞅出问题所在啦!你的MyTextArea组件压根没把接收到的props用到内部的<textarea>上,HOC传的c="d"自然就“隐身”了~

问题根源

你当前的MyTextArea只是硬编码了<textarea b="c"/>,完全没有读取或渲染this.props里的任何内容,HOC注入的c="d"根本没机会出现在DOM里。

修复方案

只需要让MyTextArea把接收的props传递给内部的<textarea>就行,推荐用展开运算符,这样所有props(包括HOC加的和你自己传的)都会被自动应用:

class MyTextArea extends React.Component {
  render() {
    // 用{...this.props}把所有props展开到textarea上
    return <textarea b="c" {...this.props} />;
  }
}

完整可运行代码示例

var HOC = (InnerComp) => class extends React.Component {
  render() {
    return <InnerComp {...this.props} c="d" />;
  }
};

class MyTextArea extends React.Component {
  render() {
    // 可以在控制台打印props,确认c属性已经接收到了
    console.log("当前组件props:", this.props);
    return <textarea b="c" {...this.props} />;
  }
}

var ControlledTA = HOC(MyTextArea);

可选:选择性传递属性

如果你不想把所有props都传给<textarea>,也可以单独指定需要的属性:

return <textarea b="c" c={this.props.c} />;

这样修改后,HOC传递的c="d"就会正常出现在<textarea>元素上啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:58:44