ES6 对象赋值简化
ES6 object assignment simplification
我有以下代码(运行良好)
const action = {
type: types.CHANGE_ADMIN_USER_PASSWORD,
password: initialState.admin.editUserPassword.password,
confirm: initialState.admin.editUserPassword.confirmPassword,
...input
};
其中 input
是 { password: 'hello' }
或 { confirm: 'world' }
。值可以不同,但只有一个键。
问题:有没有办法简化代码?例如,我只想 initialState.admin.editUserPassword
一次。 UPD:initialState.admin.editUserPassword
有两个以上的属性,所以我不能将所有对象包含到 action
。
您可以在这段代码上方使用销毁:
const {password, confirmPassword} = initialState.admin.editUserPassword;
const action = {
type: types.CHANGE_ADMIN_USER_PASSWORD,
password: password,
confirm: confirmPassword,
...input
}
最简单的方法是 destructuring:
const { password, confirmPassword } = initialState.admin.editUserPassword;
const action = {
type: types.CHANGE_ADMIN_USER_PASSWORD,
password,
confirm: confirmPassword,
...input
};
如果嵌套对象(initialState.admin.editUserPassword
)只有这两个字段(password
、confirmPassword
),并且不要将confirmPassword
重命名为confirm
您甚至可以执行以下操作:
const action = {
type: types.CHANGE_ADMIN_USER_PASSWORD,
...initialState.admin.editUserPassword,
...input
};
我有以下代码(运行良好)
const action = {
type: types.CHANGE_ADMIN_USER_PASSWORD,
password: initialState.admin.editUserPassword.password,
confirm: initialState.admin.editUserPassword.confirmPassword,
...input
};
其中 input
是 { password: 'hello' }
或 { confirm: 'world' }
。值可以不同,但只有一个键。
问题:有没有办法简化代码?例如,我只想 initialState.admin.editUserPassword
一次。 UPD:initialState.admin.editUserPassword
有两个以上的属性,所以我不能将所有对象包含到 action
。
您可以在这段代码上方使用销毁:
const {password, confirmPassword} = initialState.admin.editUserPassword;
const action = {
type: types.CHANGE_ADMIN_USER_PASSWORD,
password: password,
confirm: confirmPassword,
...input
}
最简单的方法是 destructuring:
const { password, confirmPassword } = initialState.admin.editUserPassword;
const action = {
type: types.CHANGE_ADMIN_USER_PASSWORD,
password,
confirm: confirmPassword,
...input
};
如果嵌套对象(initialState.admin.editUserPassword
)只有这两个字段(password
、confirmPassword
),并且不要将confirmPassword
重命名为confirm
您甚至可以执行以下操作:
const action = {
type: types.CHANGE_ADMIN_USER_PASSWORD,
...initialState.admin.editUserPassword,
...input
};