Vben Admin ApiTreeSelect api 传参

  在今天使用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 
                      }),
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个简单的 vben ApiTreeSelect 示例: ```vue <template> <vben-api-tree-select v-model="selected" :api="api" :data-key="'id'" :label-key="'name'" :children-key="'children'" :props="{ lazy: true, load: load, label: 'name', value: 'id', children: 'children' }" /> </template> <script> import { ref } from 'vue'; import { Api } from 'vben-admin'; export default { setup() { const selected = ref(); const api = new Api('/api/tree'); const load = async (node) => { const res = await api.get({ params: { parentId: node.data.id, }, }); return res.data; }; return { selected, api, load, }; }, }; </script> ``` 其中,`vben-api-tree-select` 是 vben-admin 中的组件,用于展示树形结构的数据,并且支持异步加载子节点。`api` 是一个 vben-admin 中的 API 实例,用于发送 API 请求。`load` 方法是一个异步方法,用于加载子节点的数据。 在上面的例子中,我们通过 `api` 实例发送 `/api/tree` 的请求来获取根节点的数据。在组件中,我们指定了 `data-key`、`label-key` 和 `children-key` 来告诉组件如何从数据中获取节点的 `id`、`name` 和子节点。 组件的 `props` 中,我们指定了以下属性: - `lazy`:启用懒加载子节点; - `load`:指定加载子节点的方法; - `label`:指定节点的显示文本对应的字段名; - `value`:指定节点的值对应的字段名; - `children`:指定子节点对应的字段名。 最后,我们将组件的 `v-model` 绑定到 `selected` 上,用于获取用户选择的节点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值