【问题标题】:Element UI not showing data from fetch-suggestion <el-autocomplete> vue js元素 UI 未显示来自 fetch-suggestion <el-autocomplete> vue js 的数据
【发布时间】:2021-09-12 14:33:32
【问题描述】:

我一直在从 el-select 远程搜索切换到远程搜索输入 el-autocomplete。我的问题是数据没有显示在下拉列表中。

<el-autocomplete
v-model="searchValue"
:fetch-suggestions="getData"
placeholder="Type here"
loading="loadingCascade"
</el-autocomplete>

方法代码中的 VueJS

getData(searchString){
            if (searchString !== '') {
                this.loadingCascade = true

                setTimeout(() => {
                        this.$API.Public.getData(searchString)
                        .then(res => {
                            let result = res.data
                            let resSearchList = result.data
                            //Include search data
                            let arr = {id : searchString, name : searchString}
                            resSearchList.unshift(arr)

                            this.searchList = resSearchList.name
                            
                        })
                        .catch(err => {
                        })
                        .then(_ => {
                            this.loadingCascade = false
                        })
                    
                }, 500);
            }

        },

【问题讨论】:

    标签: vue.js element-ui


    【解决方案1】:

    方法必须有回调函数。更改getData() 方法如下:

    getData(searchString, cb) {
      if (searchString !== '') {
        this.loadingCascade = true
    
        setTimeout(() => {
          this.$API.Public.getData(searchString)
            .then(res => {
              let result = res.data
              let resSearchList = result.data
              //Include search data
              let arr = {
                id: searchString,
                name: searchString
              }
              resSearchList.unshift(arr)
    
              this.searchList = resSearchList.name
              cb(this.searchList); // call callback function to return suggestions
            })
            .catch(err => {})
            .then(_ => {
              this.loadingCascade = false
            })
    
        }, 500);
      }
    
    },
    

    大家可以看看here的用法

    【讨论】:

    • 喜欢这个const results = [this.$API.Public.getData(searchString)]?
    • 如果this.$API.Public.getData(searchString)返回一个数组,const results=this.$API.Public.getData(searchString)就足够了。
    • 重要的是根据API填充结果,并为此结果调用回调函数
    • 仍然无法正常工作,无法在获取建议上显示项目名称
    • 能否在cb(results) 行前添加console.log(results),并分享console.log 的输出?
    猜你喜欢
    • 2018-12-28
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多