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

React中如何通过console.log打印传给子组件的props属性值?

React打印props的正确实现方案

报错原因

你遇到的listItem未定义报错,是因为listItem是你传递给List组件的props属性名,仅在List组件的作用域内可以通过props访问,你当前编写console.log(listItem)的位置是App组件内部,该作用域下只有对应的数据源变量people,没有声明listItem变量,因此会触发未定义报错。

两种常用打印方案

方案1:在父组件(App)中打印要传递的内容

你传递给listItem的实际值就是people,直接打印该变量即可确认传参内容,两种写法可选:

  • 写法1:在App组件return逻辑前打印
function App() {
  const [people, setPeople] = useState(data);
  // 直接打印即将传给List的people值,就是listItem对应的内容
  console.log('要传递的listItem值:', people);

  return (
    <div className="container">
      <h3>{people.length} birthdays today</h3>
      <List listItem={people} />
      
      <button onClick={() => setPeople([])}>Clear All</button>

    </div>
  );
}
  • 写法2:传参时实时打印,不影响实际传参逻辑
<List listItem={console.log('传递时的listItem值:', people) || people} />

原理:console.log返回值为undefined,||运算符会返回第二个真值people,因此不会改变实际传递给List的props值。

方案2:在子组件(List)中打印实际接收的props

该方法可以确认List组件实际接收到的props值,更精准,你需要在List组件的入参中接收props后再打印,示例:

// 写法1:完整接收props对象
function List(props) {
  console.log('List实际接收的listItem值:', props.listItem);
  // 后续组件逻辑...
}

// 写法2:解构获取listItem
function List({ listItem }) {
  console.log('List实际接收的listItem值:', listItem);
  // 后续组件逻辑...
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:45:03