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

JS解构赋值如何单独提取user属性并将剩余属性存入另一变量

props解构拆分user与剩余属性的实现方案

直接用ES6对象解构的剩余语法即可完成需求,有两种等价写法可选:

写法1:直接在组件入参处解构(推荐)

直接在定义组件的参数位置拆分属性,代码最简洁:

const ProductFooter = ({ user, ...product }) => {
  const { t } = useTranslation();
  const dispatch = useDispatch();

  // 可直接使用两个变量:
  // user:对应传入props里的user属性
  // product:对象类型,包含除user外所有传入的props,覆盖你需要的id、name、desc、photos、video、price、selectedOptions等字段
}

写法2:函数内部对props二次解构

如果你不想改动现有入参的{...props}写法,就在函数内部做一次解构即可,效果完全一致:

const ProductFooter = ({...props}) => {
  const { t } = useTranslation();
  const dispatch = useDispatch();

  const { user, ...product } = props;
}

说明

  • 剩余语法收集到的product是传入props的浅拷贝,不要直接修改这个对象的内部属性,遵循React props只读的规则即可。
  • 这种写法不需要手动枚举除user外的所有属性,后续父组件给ProductFooter新增传参时,新字段会自动归入product对象,不需要修改解构代码,可维护性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:12:27