问题描述
我真的需要一些帮助,我试图找出问题的三天时间,但是没有运气,因此,如果您能帮助我,我将不胜感激....我正在尝试使用react和json-server构建一个简单的应用程序后端的问题是我的数据具有嵌套对象,因此,即使我获取数据并尝试对其进行修改,也会引发错误,说嵌套obj中的kay未定义! 问题如何更新状态已嵌套obj 这是用户状态 const [getUser,setGetUser] = useState({ 名字: '', 姓: '', 年龄:“, 性别: '', 地址:{address1:”,address2:”,城市:”,州:”,邮政编码:”}, order_total:{金额:0}, }); 这就是onChnage乐趣的原理 setGetUser({... getUser,[e.target.name]:e.target.value}) 让我看看我要如何更新地址obj中的城市
解决方法
撰写时:
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)
}