如何向localStorage已存在的users对象的car字段插入数据
问题根因
你的代码直接构造了仅包含index和cars字段的新对象覆盖写入localStorage,既丢失了原users对象的name、email字段,还错误新增了不需要的index字段、写错了车辆属性的字段名(你需要的是car而非cars)。
实现方案
该需求完全可以实现,核心逻辑是先读取原有的完整users对象,仅修改其中的car字段后再回写即可,修正后的代码如下:
// 注意不要和你已声明的useState方法setCar重名,避免作用域冲突 function updateUserCar(newCar) { // 1. 读取本地存储中原有的完整users对象 const rawUsers = localStorage.getItem('users'); // 兜底处理,防止本地无数据时抛出异常 const originUsers = rawUsers ? JSON.parse(rawUsers) : { name: "John", email: "jsmith@gmail.com", car: [] }; // 2. 仅修改car字段为传入的新值 originUsers.car = newCar; // 3. 将修改后的完整对象回写到localStorage localStorage.setItem('users', JSON.stringify(originUsers)); }
调用时直接传入你的车辆状态即可:updateUserCar(car)
内容的提问来源于stack exchange,提问作者stronghold051
相关产品推荐
相关产品推荐

