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)只有这两个字段(passwordconfirmPassword),并且不要将confirmPassword重命名为confirm您甚至可以执行以下操作:

const action = {
  type: types.CHANGE_ADMIN_USER_PASSWORD,
  ...initialState.admin.editUserPassword,
  ...input
};