如何使用react和json-server更新嵌套对象

问题描述

我真的需要一些帮助,我试图找出问题的三天时间,但是没有运气,因此,如果您能帮助我,我将不胜感激....我正在尝试使用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)
}