在vue3中用typescript用reactive定义的变量值调函数?

如我定义了两个接口分别是add和edit,
我调用哪一个是通过一个变量来实现的,如let apiType=''

我中间会赋值给apiType,不是'add'就是'edit'
在vue2中我可以直接[this.apiType]就能调取到add或edit接口,可以在vue3我用了reactive,这样的话我要怎么实现。。??
如下:

TypeError: [data.addEditType] is not a function

data.addEditType是reactive定义的响应式变量

阅读 2.4k
2 个回答
const addTest = () => {
  //
};
const editTest = () => {
  //
};
const dataTest = reactive({
  apiType: "add",
  add: addTest,
  edit: editTest,
});

dataTest[dataTest.apiType]();
<script lang="ts" setup>
import { apiCaptchaImageBase64, apiSysOrderBill } from '@/request/api'
import { reactive } from 'vue';

const state = reactive({
  add: apiCaptchaImageBase64,
  edit: apiSysOrderBill
})

let apiType: 'add' | 'edit' = 'add'


function test () {
  apiType = 'edit'
  const res = state[apiType]()
}

</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题