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

React使用props传递数组被包装为对象?父子组件传值接收异常问题

问题原因

React 组件接收的所有传入属性都会被封装为一个props对象,你在父组件中通过movies={movies}的语法传值,等价于给props对象添加了一个键为movies、值为电影数组的属性。你在子组件中直接将整个props对象赋值给movies变量,最终拿到的自然是包含电影数组的props对象,而非数组本身。

解决方案

有三种常见的修正方式,可根据开发习惯选择:

  • 方法1:从props对象中显式取出movies属性
const MovieOverview = (props) => {
  const movies = props.movies;
  console.log(movies);
  // 后续逻辑
}
  • 方法2:在参数位直接解构获取movies属性(代码更简洁,是业内常用写法)
const MovieOverview = ({ movies }) => {
  console.log(movies);
  // 后续逻辑
}
  • 方法3:如果你使用TypeScript开发,可以补充类型约束避免同类问题
interface MovieOverviewProps {
  movies: IMovie[]
}
const MovieOverview = ({ movies }: MovieOverviewProps) => {
  console.log(movies);
  // 后续逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:09:00