我正在使用以下代码从反应状态获取对象。
const { organizations } = this.state;
状态对象如下。
this.state = {
userOrganizations: {},
OrganizationUsers: {}
}
userOrganizations
实际上是一个内部对象名为organizations
的对象。如何使用es6代码映射?
修改
我真正需要的是使用以下代码获取userOrganizations
和OrganizationUsers
的内部对象。
const { organizations, users } = this.state;
organizations
和users
是userOrganizations
和OrganizationUsers
内的子对象。
因此,当我想处理它们时,它们是否只需要调用
const { organizations, users } = this.state.userOrganizations, this.state.OrganizationUsers;
答案 0 :(得分:4)
你可以像
那样嵌套破坏const { userOrganizations : { organizations } } = this.state;
或简单地写
const { organizations } = this.state.userOrganizations;
答案 1 :(得分:1)
只需使用点符号,直到到达所需属性上方的父对象
const obj = { outer: { inner: 'value' }};
const { inner } = obj.outer;
console.log(inner);

要在不同的嵌套级别中一次构建多个内容,请尝试以下方法:
const x = {
state: {
userOrganizations: {
organizations: 'orgValue'
},
OrganizationUsers: {
users: 'userValue'
}
}
}
const { userOrganizations: { organizations }, OrganizationUsers: { users } } = x.state;
console.log(organizations + ' ' + users);

答案 2 :(得分:1)
这很简单,但仍有很多人弄错了。这是内部解构的一个例子
const obj = {
someArray: [ 1, 2, 3],
someInnerObj : {num: 123, txt: 'text'}
}
const {someArray: [first,second], someInnerObj: { num: myNum, txt: meText}} = obj
console.log(first,second,myNum,meText)
在控制台中试用
答案 3 :(得分:0)
如果我没错,这应该可以解决你的问题,
const { organizations } = this.state.userOrganizations;