【问题标题】:how to update nested object using react and json-server如何使用 react 和 json-server 更新嵌套对象
【发布时间】:2021-02-01 02:34:20
【问题描述】:
我真的需要一些帮助我试图找出问题三天但没有运气所以如果你能帮助我真的很感激......我正在尝试构建一个简单的应用程序与反应和 json-server后端问题我的数据有嵌套对象,所以当我获取数据并尝试修改它时,抛出错误说嵌套 obj 中的 kay 未定义!
如何更新状态的问题嵌套了obj
这是用户状态
const [getUser, setGetUser] = useState({
名: '',
姓: '',
年龄: '',
性别: '',
地址:{地址1:'',地址2:'',城市:'',州:'',邮编:''},
order_total:{金额:0},
});
这就是 onChnage fun 的工作原理
setGetUser({ ...getUser, [e.target.name]: e.target.value })
让我看看我想更新地址 obj 中的城市我该怎么做
【问题讨论】:
标签:
reactjs
json-server
nested-object
【解决方案1】:
当你写作时:
setGetUser({ ...getUser, [e.target.name]: e.target.value })
您正在向字典中添加新的键值对,而不是更新现有的键值对。如果您想更新现有的键值对,例如城市,您应该尝试以下操作:
- 克隆字典
- 使用新信息修改克隆
- setState(修改克隆字典)
例如:
const [getUser, setUser] = useState({
first_name: "",
last_name: "",
age: "",
gender: "",
address: {
address1: "",
address2: "",
city: "",
state: "",
zip: ""
},
order_total: {
amount: 0
}
});
const updateCityHandler = (city) => {
let newDict = {...getUser}
newDict.address.city = city
setGetUser(newDict)
}