You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3组合式函数传参优化:无需空值实现多场景调用

解决Vue3组合式函数无参数调用的报错问题

问题根源在于你给pluckUsers定义的对象解构参数未设置默认值,当不传入任何参数时,函数接收的参数是undefined,尝试从undefined解构属性自然会抛出类型错误。

修改方案

直接给函数的参数对象设置默认空对象,同时保留属性的默认值,这样无论是否传参、传部分还是全部参数,都能正常解构:

import { api } from 'boot/axios'

export default function usePlucks() {
  // 给参数对象设置默认值 {}
  const pluckUsers = ({ val = null, excludeIds = null } = {}) => 
    api.get('/users/pluck', { params: { search: val, exclude_ids: excludeIds }})

  return {
    pluckUsers
  }
}

验证各种调用场景

修改后以下调用方式都能正常工作:

  • 不传任何参数:pluckUsers()
  • 仅传val:pluckUsers({ val: 'admin' })
  • 仅传excludeIds:pluckUsers({ excludeIds: [props.id] })
  • 传全部参数:pluckUsers({ val: 'user', excludeIds: [1,3] })

这样既不需要传空对象pluckUsers({}),也不用刻意给未用到的属性设null,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Luciano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:06:23