在今天使用ApiTreeSelect 时需要将一个参数传递给后端,如果直接传参的话浏览器发出警告:
Invalid prop: type check failed for prop "api". Expected Function, got Promise
道具“api”的类型检查失败。传参方式和报错如下:
api: ApiTreeSelectArray[item.componentProps.api]({
key: item.componentProps.resultField,
}),
翻阅Vben Admin文档可知:ApiTreeSelect api 需要一个function 返回一个 Promise 对象。
报错原因
因为需要的是一个function 但是如果写成传参的形式:function(xxx) 则相当于调用函数 function得到函数的返回值。在此处function返回值为一个Promise 对象,不符合ApiTreeSelect api的需求所以报错。
解决方法
用一个箭头函数返回api函数即可。
api: () => ApiTreeSelectArray[item.componentProps.api]({
key: item.componentProps.resultField
}),