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

React受控组件onChange触发后属性值变为undefined问题求助

问题分析与解决

核心问题

你在setConfig时破坏了原本的数组结构:初始config是数组类型,但setCarType里直接传入了单个对象,导致config被替换成对象,后续config[0]就变成undefined,解构自然拿不到属性值。

修正代码

更新state时要保持数组格式,修改数组内的第一个对象:

const [config, setConfig] = useState([{
  carType: "Sedan",
  carColor: "Red"
}]);

// onChange
const setCarType = (e) => {
  // 创建新数组,替换第一个元素,保留数组结构
  setConfig([{ ...config[0], carType: e.target.value }]);
};

const { carType, carColor } = config[0];

关于"Objects are not valid as a react child"错误

之前把config设为对象时出现这个错误,是因为你可能直接在JSX中渲染了整个对象(比如写{config}),React无法直接渲染对象类型,你需要渲染对象的具体属性(比如{config.carType})。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:57:18