elementUI el-tree组件的filter报错Error in callback for watcher “xxx“: “TypeError: x is not a function

先上报错截图
因为百度没有人遇到这个问题,所以自己记录一下
报错

自己写的:

<el-input size="mini" v-model="searchOrg"></el-input>
<el-tree
  accordion
  :filter-node-method="filterNode"
  ref="tree"
  :data="firstSelectData"
  @node-click="handleNodeClick"
>
  <span slot-scope="{node, data}">
     <span class="tree-node-label">
        <i class="el-icon-office-building"></i>
        <span>{{node.label}}</span>
     </span>
  </span>
</el-tree>
data(){
	return {
		searchOrg:''
	}
}
watch: {
    searchOrg(val) {
      this.$refs.tree.filter(val)
    }
  },
methods:{
	filterNode(value, data) {
      if(!value) return data;
      return data.label.indexOf(value) !== -1;
    },
}

官方:
在这里插入图片描述
实在不知道问题出在哪,就把ref输出了一下,发现了问题所在
我的ref el-tree打印出来是

watch: {
    searchOrg(val) {
      console.log(this.$refs.tree)
      this.$refs.tree.filter(val)
    }
  },

在这里插入图片描述
正常的输出应该是:
在这里插入图片描述
我们再输出一下它的filter方法
我自己的:
在这里插入图片描述
正确的应该是
在这里插入图片描述

有没有发现问题所在?
对,就是组件变成了数组型,我们需要的el-tree元素应该是0号位,可能因为我自己又封装了一个穿梭框组件导致的吧
解决办法:

this.$refs.tree.filter(val)

变为

this.$refs.tree[0].filter(val)

解决,el-tree 的过滤功能就可以正常使用了

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
引用\[1\]:这个误是在created钩子函数中出现的,信息是"TypeError: Object(…) is not a func"。引用\[2\]:根据引用\[2\]的解释,这个误通常是由于赋值类型问题引起的。在使用elementUI框架的el-table组件时,:data="tableData"中的tableData应该是一个数组,而不是一个对象或其他类型的数据。类似地,在使用elementUI框架的表单组件时,:model="form"中的form应该是一个对象类型的数据。如果不符合这些要求,就会出现这种误。引用\[3\]:总结来说,出现这种误很可能是在使用elementUI框架的el-table组件时,:data="tableData"中的tableData数据类型不是数组,或者在使用elementUI框架的表单组件时,:model="form"中的form数据不是对象类型,才会导致这种误。因此,请仔细检查代码,并通过查看信息来解决问题。 #### 引用[.reference_title] - *1* [2b0e:619 [Vue warn]: Error in created hook: “TypeError: Object(...) is not a func](https://blog.csdn.net/qq_30351747/article/details/116406071)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [a026:628 [Vue warn]: Error in render: “TypeError: data.reduce is not a function](https://blog.csdn.net/m0_49471668/article/details/121270863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值