javascript - 反应如何处理访问对象深处的变量,如果它并不总是存在
问题描述
在我的应用程序中,我有一个用于创建公司的页面,以及一个用于编辑其详细信息的页面。
它们是相同的,除了一个将开始为空而另一个将预先填充详细信息(如果存在)。
我试图在这里使用相同的组件,并有一个变量isEditing = true/false
我的公司 obj 看起来像这样
address: {address: "asdf", city: "asdf", country: "asdf", postal: "asdf"}
company_id: 44
contact: {firstName: "asdf", lastName: "asdf", personalEmail: "asdf", phone1: "asdf", phone2: "asdf", …}
email: "asdf"
name: "my company"
我以前没有问题,但是当我决定将地址/联系人字段分组到一个 obj 中时,它开始崩溃。
例如,将值分配给我的城市字段时,我会这样做
value = {companyDetails.address.city}
当我创建公司时,状态
companyDetails = {}
这会导致错误cannot access .city of undefined because companyDetails.address does not exist etc.
我在编辑公司页面上解决了这个问题,加载状态等待 company.address 存在,但这在创建页面上不起作用,因为它永远不会存在?
我目前通过设置初始状态在创建页面上解决了这个问题
commanyDetails = {
name:"",
email:"",
address: {},
contact: {},
notes:""
}
而不是 ,companyDetails={}
这是处理它的最佳方法吗?我真的不喜欢它所以我在这里..
谢谢你的帮助!
解决方案
推荐阅读
- c++ - 是否可以使用 C++17 内联成员强制跨 TU 的全局变量的初始化顺序?
- r - 为ggplot中的同类变量分配相似的颜色
- python-3.x - scrapy RuntimeError: 要使用 XPath 或 CSS 选择器,ItemLoader 需要用选择器实例化
- html - 如何在 Bootstrap 下拉列表的标签中显示所选项目?
- android - 将文件从 android 应用程序上传到我的 S3 存储桶
- java - 如何使用 GSON 反序列化数组数组
- spring-boot - Spring数据JPA-休眠多对多关系在链接实体表中插入null
- reactjs - 在反应中将格子链接令牌传递给客户端
- tensorflow - Keras - 正则化和自定义损失
- firebase - 如何从 vuejs 和 firestore 获取文档的 id?