我有以下代码(运作良好)
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
中。
答案 0 :(得分:2)
最简单的方法是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
};
答案 1 :(得分:1)
您可以在此代码上方使用销毁:
const {password, confirmPassword} = initialState.admin.editUserPassword;
const action = {
type: types.CHANGE_ADMIN_USER_PASSWORD,
password: password,
confirm: confirmPassword,
...input
}