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

React/JS中如何用扩展运算符向数组添加元素?

问题解决:下拉项添加到数组的正确状态更新写法

你的错误写法存在两个核心问题:

  • 误将数组用对象的大括号{}展开,数组扩展应该使用方括号[]
  • 在函数式更新中直接引用finalBenefits原状态,而非使用传入的prev参数(状态更新是异步的,直接取原状态可能拿到旧值)

正确写法

如果selectedBenefits1是单个选项值(比如字符串"Additional leave"),需要包装成对象再添加:

setFinalBenefits(prev => [...prev, { option: selectedBenefits1 }])

如果selectedBenefits1本身就是{ option: "xxx" }格式的对象,直接追加即可:

setFinalBenefits(prev => [...prev, selectedBenefits1])

说明

  • prev是React传入的状态更新前的最新值,确保每次更新都基于当前最新的数组状态
  • [...prev]会展开原有数组的所有元素,再把新元素追加到末尾,最终得到你需要的[{option: "xxx"}, ...]结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:15:44