我仍在尝试学习各种方法。我知道足够多,可能有一种更简洁地编写此方法的方法。有吗?
this.props.setStateObjects({
data: data.reservation_data.data,
included: data.reservation_data.included
})
编辑:
根据下面@Sung M Kim的要求,这是上下文:
$.ajax({
})
.done( ( data ) => {
this.props.setStateObjects({
data: data.reservation_data.data,
included: data.reservation_data.included
})
})
答案 0 :(得分:2)
您可以对data
进行解构以拔出reservation_data
,然后从data
拔出included
和reservation_data
字段。然后,您可以使用速记对象键值表示法将其设置为状态,
const { reservation_data: { data: dataToSet, included } } = data
或更少破坏
const { data: dataToSet, included } = data
然后将其设置为状态
this.props.setStateObjects({
data: dataToSet,
included
})
答案 1 :(得分:1)
使用传播运算符:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
let pickedParameters = (({ data, included }) => ({ data, included }))(data.reservation_data);
this.props.setStateObjects({...pickedParameters});
或者获取数据并包括在内,您可以使用这种格式来避免使用该函数,尽管该函数仍然重复且丑陋:
let pickedParams = {};
({data: pickedParams.data, included: pickedParams.included} = data.reservation_data);