vuex动作有效负载的默认值?

时间:2019-03-26 23:47:07

标签: javascript vue.js

我正在尝试提出一种更好的方法来为vuex动作有效负载属性设置默认值,现在我正在使用if-else来检查传递的有效负载对象是否具有delay属性(如果有)我不是将值设置为默认值,其余的都可以想象得到。

是否有更好的方法可以减少行数?我确定一定有。

这是我的动作:

{{1}}

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用destructuring assignment设置默认值:

showModal ({ commit }, modalPayload) {
  const { delay = 3000 } = modalPayload

  commit('SHOW_MODAL', modalPayload);
  setTimeout(() => commit('HIDE_MODAL'), delay);

}

此外,如果不需要将delay传递到commit,则可以解构第二个函数参数:

showModal ({ commit }, { delay = 3000, ...modalPayload }) {
  commit('SHOW_MODAL', modalPayload);
  setTimeout(() => commit('HIDE_MODAL'), delay);
}