我正在尝试提出一种更好的方法来为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',delay);
}