element-plus的el-select实现触底加载更多(新版本报错踩坑)

这篇具有很好参考价值的文章主要介绍了element-plus的el-select实现触底加载更多(新版本报错踩坑)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

element-plus新版增加了一个属性,且默认为true,使得下拉菜单被插入到了body元素下。即.el-select下默认不包含.el-select-dropdown了。

element-plus的el-select实现触底加载更多(新版本报错踩坑)

现象

当依旧按照之前的方式,封装自定义指令,实现滚动到el-select下拉菜单的底部,加载更多数据的功能时就会报错。

原逻辑:

// 生成全局唯一的class
const uniSelectClass = () => {
  const num = Math.ceil(Math.random() * 100 + 1)
  if (document.getElementById(`qSelect${num}`)) {
    uniSelectClass()
  } else {
    return `qSelect${num}`
  }
}

// directives
const vLoadmore = {
  mounted(el, binding) {
    nextTick(() => {
      const domClass= "." + uniSelectClass() + " .el-select-dropdown .el-select-        dropdown__wrap"
      const element = el.querySelector(domClass)
      element.addEventListener("scroll", () => {
        const { scrollTop, scrollHeight, clientHeight } = element
        const scrollDistance = scrollHeight - scrollTop <= clientHeight
        if (scrollDistance) {
          binding.value()
        }
      })
    })
  },
}

 报错

element-plus的el-select实现触底加载更多(新版本报错踩坑)

报错原因及解决方案

原因也就是前言中提到的,因为.el-select-dropdown不再是.el-select的子元素,而再次使用const element = el.querySelector(".el-select-dropdown .el-select-dropdown__wrap")就会出现此时的element为null,导致报错。

解决

element-plus的el-select实现触底加载更多(新版本报错踩坑)

使用

element-plus的el-select实现触底加载更多(新版本报错踩坑)文章来源地址https://www.toymoban.com/news/detail-480275.html

到了这里,关于element-plus的el-select实现触底加载更多(新版本报错踩坑)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • el-select下拉框处理分页数据,触底加载更多

    1、声明自定义指令: 2、使用自定义指令v-loadmore: 3、发送请求加载数据 参考:el-select滚动到底部加载更多(分页加载数据)_el-select 触底加载分页_天道酬勤_鹿的博客-CSDN博客

    2024年02月16日
    浏览(39)
  • Vue2 + element ui el-select 远程搜索分页懒加载功能实现

    新建指令 :         1、 在 src 目录下 新建文件夹 directive / loadmore         2、在 loadmore 文价夹下新建 elSelectLoadmore.js 和 index.js 文件:            elSelectLoadmore.js index.js 3、在main 文件中注册该指令 4、 基于 el-select 封装 懒加载 远程搜索框 remoteSelect.vue 组件提示

    2024年01月21日
    浏览(51)
  • Element-UI实现的下拉搜索树组件(el-select、el-input、el-tree组合使用)

    1、子组件封装 注意使用:正常使用 // 子组件使用 父组件调用

    2024年02月11日
    浏览(87)
  • element el-select下拉框选择失效

    2023.1.11今天我学习了使用element el-select组件下拉框选择数据失效的原因以及解决办法。 如图:   当我已经选择启用状态的时候,然后点击停用状态没反应。 是因为在配置表单的过程中,重复使用了这个字段。 如: 就是在表单中重复使用了status这个字段,然后导致选择失效。

    2024年02月16日
    浏览(46)
  • element ui - el-select 手动设置高度

    当我们的页面想要手动设置 element ui 中 el-select 的高度时,如果只是通过设置 el-select 的 height 属性时,会发现调整无效。 继续对 el-select 中的 input 元素 .el-input__inner 设置。会发现高度生效了,但是右侧的下拉框箭头移位了。 如下提供一种可以调整 el-select 高度的方法:

    2024年02月15日
    浏览(48)
  • vue3+element-plus+el-image实现点击按钮预览大图

    需求:点击某个按钮实现el-image中预览大图的效果 官方文档:以下是官方的写法,并不能达到我们的要求,官方实现的功能是点击图片达到预览大图的效果。如果你的按钮就是图片,也可以达到目前的功能 el-image-viewer组件是element官方的组件,只是文档中没有写出来,这个组

    2024年02月12日
    浏览(58)
  • element ui - el-select 添加可输入功能

    vue2 + element ui 的项目中,产品希望 el-select 可以支持输入功能,也就说用户既可以下拉选择,也可以输入任意内容。 通过阅读element ui 的官方文档,发现 allow-create 这个属性就可以支持用户创建新条目,但美中不足的是,创建新条目后还需要手动选择点击一下,否则无效。 这

    2024年02月11日
    浏览(52)
  • Element VUE修改 el-input和el-select长度

     没有设置样式之前,采用默认样式,界面如下:  模拟代码如下  为了美观需要修改下样式,使文本框与下拉框的长度一致 第一种:添加style属性,采用行内样式修改长度  第二种:添加class属性,采用内部样式  stule标签中设置长度 第三种:找到element-ui.scss,采用外部样式

    2024年02月11日
    浏览(55)
  • Element-UI el-select多选表单校验问题

    在使用 el-select 多选下拉菜单配置表单校验时, 如果form表单绑定的form对象对应属性值为空字符串或者null(其他未尝试),表单中的多选下拉框会立刻执行校验并弹出校验信息,代码如下: 正确方式如下: 将多选下拉框对应的属性值默认值设置未空数组即可

    2024年02月16日
    浏览(62)
  • element-ui 表单校验,el-select校验失效问题

    form表单验证时,遇到了校验失效问题,有值的情况下,校验规则并没有对应消失,检查了几个容易出错的地方:1、:model=\\\"addForm\\\" 用model绑定表单,而不是v-model,没问题 2、需要添加校验的对应字段,是否添加了prop属性,ok没问题 3、检查rules,里面校验提示的事件是否正确,发

    2024年02月11日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包