编程语言
首页 > 编程语言> > javascript-vuex操作有效负载的默认值?

javascript-vuex操作有效负载的默认值?

作者:互联网

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

有没有更好的方法可以减少行数?我确定一定有.

这是我的动作:

showModal ( {commit}, modalPayload ) {

        let delay;

        if(modalPayload.delay == undefined){
            delay = 3000;
        }
        else{
            delay = modalPayload.delay
        }

        commit('SHOW_MODAL',  modalPayload);
        setTimeout(function(){
            commit('HIDE_MODAL');
        }, delay);

    },

提前致谢.

解决方法:

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

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

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

}

另外,如果不需要传递延迟到提交,则可以分解第二个函数参数:

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

标签:vue-js,javascript
来源: https://codeday.me/bug/20191211/2105492.html