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

为何组件无法接收名为value的Prop?传值后console.log显示null

组件传入value属性却输出null的排查问题

我定义了仅接收value和onChange两个Prop的CardSelect组件,代码中console.log输出value为null,但使用组件时已传入value='this is the value'和onChange函数,疑惑是否有规则禁止将组件属性命名为value,请求帮助排查问题。

组件代码

const CardSelect = ({ value, onChange }) => {
  console.log('Value', value) // value is null
  // ... 其他代码
}

使用方式

<CardSelect value='this is the value' onChange={()=>{console.log('fn')}}>

排查方向

  • 检查Prop默认值:如果组件给value设置了null作为默认值(比如({ value = null, onChange })),会直接覆盖传入的值,需要确认是否有这种多余的默认值定义。
  • 检查高阶组件包裹:如果CardSelect被其他高阶组件(如表单封装组件)包裹,可能会被劫持或重写value属性,导致传入的值未被正确传递到组件内部。
  • 确认拼写一致性:虽然示例代码中拼写正确,但实际开发中可能出现val、valuee这类拼写错误,导致组件未接收到正确的属性。
  • 检查父组件状态:如果父组件中传递的value是基于某个状态(如value={parentState}),需确认该状态是否在渲染时被设置为null或未正确更新。
  • 关于value命名:React没有禁止将组件属性命名为value,这是组件开发中非常常见的属性名(原生input、各类UI库组件均广泛使用),命名本身不存在问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:04:59