38 Star 992 Fork 66

Lee / uv-ui

 / 详情

uv-picker在组合式API的自定义组件中,columns动态赋值无法显示选项

已完成
创建于  
2023-11-16 15:39

#问题描述:
columns使用静态赋值,或者通过props从组件外部入传入的方式初始化可以正常显示选项。在组件内部调用接口数据赋值给columns,则无法显示选项。目前我是通过从父组件传入columns的方式解决的,但这种方式对封装组件不是很友好。
如下代码所示,方法二可以正常显示选项,但是使用方法一无法显示选项,并且把方法二代码移入showPicker方法中也无法显示选项。
自定义组件代码

<template>
  <uv-input v-model="selected" border="none" disabled @click="showPicker" placeholder="请选择xxx"></uv-input>
  <uv-picker ref="pickerRef" :columns="columns" @confirm="confirm"
             key-name="name" :loading="loading" title="选择xxx"></uv-picker>
</template>
<script setup lang="ts">
import {ref} from "vue";
import {$get} from "@/common/util/http";

const emits = defineEmits(['update:modelValue'])
const props = defineProps({
  modelValue: {type: String},
})
let pickerRef = ref()
const columns = ref([])
let selected = ref('')
let loading = ref(false)

//方法一
function load() {
  $get('/api/getXXX')
      .then((res: any) => {
        //data是一个数组
        const {data} = res;
        columns.value.push(data);
      })
}
load();

//方法二
// columns.value.push([
//   {name: 'Item1', id: '1'},
//   {name: 'Item2', id: '2'},
// ])

function showPicker() {
  pickerRef.value.open()
}

</script>
<style scoped lang="scss">
</style>

评论 (2)

慎言笃行 创建了任务

已经修复

Lee 任务状态待办的 修改为进行中
Lee 任务状态进行中 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1
https://gitee.com/climblee/uv-ui.git
git@gitee.com:climblee/uv-ui.git
climblee
uv-ui
uv-ui

搜索帮助