背景:
需求是:在vue框架中,接口傳參我們需要穿“變量名”,而不是字符串
通俗點說法是:在網絡接口請求的時候,要傳屬性名
效果展示:
vue2核心代碼:
this[_keyParam]
vue3核心代碼:
[_keyParam]?
//封裝方法
const filtertreeLocationSelect = async(filterVal, item )=> {if (!filterVal) return;const _keyParam = item.filterablePrama.keyParam// console.log('_key>>>',_keyParam,typeof _keyParam,33,this[_keyParam]);console.log('_key>>>',_keyParam,typeof _keyParam,33,[_keyParam]);//后端接口await handleSubFilter(item, {[_keyParam] : filterVal });
};
完整使用案列:
const item = {type: "treeLocationSelect",label: "渡口名稱",key: "dkId",url: "/data/ferryPort/pageData",methed: "post",optionParam: {label: "name",value: "pid",},optionsData: [],moreparams: {pageNum: 1,pageSize: 99999,},headers: {headers: {"Content-Type": "application/json",},},default: store.selectAreaId,limit: "有聯動",filterable: true,filterablePrama:{keyParam:'name'},},
//調用封裝方法:
filtertreeLocationSelect(filterVal,item )
?
?