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

React中如何在单个Prop中传递多个值并提取?

当然可以实现!你猜的思路完全正确——把关联的valueA和valueB封装成对象或者数组,就能通过单个prop传递了。下面给你两种常用的实现方式,附带完整代码示例:

方式1:封装为对象(推荐,可读性更强)

这种方式适合需要明确标识每个值的场景,父组件里把两个值打包成带键名的对象,子组件里通过解构或者直接访问对象属性来提取值。

父组件传递代码:

<div>
  <MyComponent 
    valueAB={{ a: 100, b: 90 }} 
    valueC={80} 
    valueD={70} 
    valueE={60} 
  />
</div>

子组件接收代码(函数组件为例):

function MyComponent({ valueAB, valueC, valueD, valueE }) {
  // 解构对象里的两个值,也可以直接用valueAB.a、valueAB.b访问
  const { a: valueA, b: valueB } = valueAB;

  // 之后就可以像原来一样使用valueA、valueB、valueC等变量了
  return (
    <div>
      <p>ValueA: {valueA}</p>
      <p>ValueB: {valueB}</p>
      <p>ValueC: {valueC}</p>
    </div>
  );
}

方式2:封装为数组

如果这两个值的顺序是固定的,不需要额外键名标识,也可以用数组来传递:

父组件传递代码:

<div>
  <MyComponent 
    valueAB={[100, 90]} 
    valueC={80} 
    valueD={70} 
    valueE={60} 
  />
</div>

子组件接收代码:

function MyComponent({ valueAB, valueC, valueD, valueE }) {
  // 按数组顺序解构值,顺序要和传递时一致
  const [valueA, valueB] = valueAB;

  return (
    <div>
      <p>ValueA: {valueA}</p>
      <p>ValueB: {valueB}</p>
      <p>ValueC: {valueC}</p>
    </div>
  );
}

小提示

  • 优先推荐用对象封装,因为键名能让代码更易读,后续维护时能快速知道每个值的含义;
  • 如果是类组件,接收方式类似,通过this.props.valueAB来访问,再解构即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 08:57:40