踩坑问题描述:

问题一:

获取到后端返回的数组,并将数组传入作为 results 传入 callback 后,焦点放在 输入框 上的时候,并未出现任何内容,只出现了一个不完整的空白框。

问题解决方案:
这个问题开始我以为是传进 callback 的 data 格式不对。Element官网上是这么写的:

我传入的是对象数组,是没问题的。
后来我仔细阅读了 Elemen t带建议查询输入框的 Demo 代码并查阅相关资料发现,输入建议列表的数据只来源于
data:[] 中的 value 字段!!!

于是,我将后端传回的 response 处理了,将 response 中需要展示的字段组成 {value:'输入建议'} 这种格式,问题解决。

 searchAppNodeApi(searchQuery).then(response => {
this.loadAll = response.data
this.devEuiArr = [];
for (let item of this.loadAll) {
this.devEuiArr.push({"value1": item.dev_eui})
}
})

searchAppNodeApi() 是我请求后端的api方法,拿到请求成功的回调函数的 response 参数。但是, response 里面包含很多我不需要的字段,我只需要其中的 dev_eui 字段。因此,循环 response.data 将其中每条的 dev_eui 重组成 {value:'输入建议'} 的格式并 push 进声明的新数组 devEuiArr。

打印如下:

正确效果如下:

问题二:

成功出现输入建议列表后,出现一个新的问题,并且 Element 官网的 Demo 代码并未阐述这种情况,就是当我获取到输入建议列表后,切换成另一个输入建议列表,会先闪一下上一个出现的输入建议列表,切换后的输入列表为空也会闪出上个输入建议列表,就算手动清空 callback(data:[]) 中的 data 数组也无济于事。

问题解决方案:
这个问题开始我以为是需要返回数据后手动清空 callback 里面的 data 数组,像下面这样:

 //联想查询时触发
querySearch(queryString, callback) {
var results = queryString ? this.devEuiArr.filter(this.createFilter(queryString)) : this.devEuiArr
// 调用 callback 返回建议列表的数据
callback(results)
results = ''
}

但是一点作用没起,也就是跟变量缓存没什么关系,后来我在 Element 官网的一个小角落发现这么一个参数:

debounce ? 函数去抖 ? 应该就是它了!

debounce 的默认值是 300ms,我们将其设置为 0ms。

 <el-autocomplete
placeholder="请输入DEVEUI"
v-model="searchDeveuiVal"
clearable
:fetch-suggestions="querySearch"
size="small"
:debounce=0
@keyup.enter.native="searchAppNode">
</el-autocomplete>

element-ui带输入建议的input框踩坑的更多相关文章

  1. element ui源码解析 -- input篇

    el-input是element ui中使用最频繁的组件之一了,分析其构成从四个方面入手:DOM结构,属性,样式,事件入手 DOM结构: <div> <input /> < ...

  2. element ui 手动关闭$notify弹框

    1.需求: 当用户点击 “点击下载” 后,文件导出这个弹框主动消失. 2.解决方案: 如下图所示 (需要注意的是这里的关闭是 点击弹框任意处就会关闭,如果想实现我的需求需要判断一下即可)

  3. selenium下拉框踩坑埋坑

    本文来自网易云社区 作者:王利蓉 最近web端全站重构,所有的页面都大大小小都有些变动,UI就全军覆没了,用例从登录改,改到个人信息页面发现根以前的实现方式完全不一样,这可怎么解决 1.以前的实现(o ...

  4. 修改ranger ui的admin用户登录密码踩坑小记

    修改的ranger ui的admin用户登录密码时,需要在ranger的配置里把admin_password改成一样的,否则hdfs的namenode在使用admin时启动不起来,异常如下: Trac ...

  5. BootStrap中模态框踩坑

    在模态框中使用html标签上的自定义属性来打开模态框后,在使用JS关闭模态框,就会出现多层蒙板问题 出现这个问题的原因就是没有仔细看bootstrap的官方文档,我人麻了,搞了好久 务必将模态框的 H ...

  6. element UI 饿了么 UI 分页 按钮不显示的问题

    https://blog.csdn.net/sinat_37255207/article/details/88914235 一个很坑的 深坑  element UI 的 按钮 不显示的深坑 <e ...

  7. element UI el-autocomplete 带输入建议的输入框

    项目需求:需要用户在输入框中输入公司 全名    但是为了避免用户输入不全   需要做一个带输入建议的输入框 参考:https://www.jianshu.com/p/de922caf337c

  8. vue2.0 + element ui 实现表格穿梭框

    element ui 官网里介绍了穿梭框(Transfer),但在实际使用过程中,会出现一些问题: 1.穿梭框里能放置的内容太少,不能满足复杂的业务需求. 2.当选项过多时,穿梭框很难实现分页,左右两 ...

  9. element 表单校验失败自动聚焦到失败的input框

    1.在对应的input框上添加ref属性,直接根据ref就可精确地获取到元素 <el-form-item label="课程名称" :label-width="fo ...

  10. 基于 vue+element ui 的cdn网站(多页面,都是各种demo)

    前言:这个网站持续更新中...,有网上预览,github上也有源码,喜欢记得star哦,欢迎留言讨论. 网站地址:我的个人vue+element ui demo网站 github地址:yuleGH g ...

随机推荐

  1. 老版本mujoco: mujoco 1.31 1.40 1.50 2.00 版本下载地址

    下载地址: https://www.roboti.us/download.html 激活码下载地址: https://www.roboti.us/file/mjkey.txt 安装教程: https: ...

  2. 宝塔环境安装redis

    参考: http://www.bt.cn/Help/Find?id=92 步骤: 1. 在安装宝塔时 PHP 版本选 7.0: 2. 安装 redis:wget http://125.88.182.1 ...

  3. 随时随地与 LLMs 聊天的开源项目「GitHub 热点速览」

    众所周知,本地运行 LLMs 需要下载模型(体积大),并且还比较吃硬件配置.近日 GitHub 推出了 GitHub Models 服务,让开发者可以在 GitHub 上免费测试 Llama.Phi ...

  4. 【牛客刷题】HJ13 句子逆序

    题目链接 题目本身不难,但是牛客的输入样例很坑,因此只好使用bufio来进行输入了: package main import ( "bufio" "fmt" & ...

  5. spring声明事务失效问题

    问题:      在项目开发中遇到了一个spring事务失效的问题,检查配置文档,都没有问题,其他的类中的方法都能进行事务管理,而这个类中的方法却不行. 分析      查看代码发现三个问题: 原因1 ...

  6. vscode 下配置 clang

    需要在workspace的文件夹下添加文件: .clang-format 更多参数说明: https://clang.llvm.org/docs/ClangFormatStyleOptions.htm ...

  7. 浅谈Integer缓存机制原理

    面试题引入 这里引申出一个经典问题,看下面代码 Integer a = 100; Integer b = 100; System.out.println(a == b);//true Integer ...

  8. Flutter调试debug或者打包release帧率只有60的原因

    问题描述 最近发现Flutter中引入像素较大的静态图片或者字体导致调试或者打包之后在高刷手机上帧率只有60的问题. 测试设备为小米13,可在开发者选项中直接打开帧率显示, 也可使用statsfl插件 ...

  9. 【Mac + Appium + Java1.8(二)】之Android模拟器自动化测试脚本开发以及简易例子

    直接上代码: import io.appium.java_client.AppiumDriver; import org.junit.After; import org.junit.Before; i ...

  10. python png 转 icon文件

    pip install pillow from PIL import Image def png_to_ico(png_path, ico_path): img = Image.open(png_pa ...