vue.runtime.esm.js:1888 TypeError: Cannot read property ‘forEach‘ of undefined at VueComponent.<

本文主要是介绍vue.runtime.esm.js:1888 TypeError: Cannot read property ‘forEach‘ of undefined at VueComponent.<,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

出错原因:
调用 $table.toggleRowExpansion 函数报错。

vue.runtime.esm.js:1888 TypeError: Cannot read property 'forEach' of undefinedat VueComponent.<anonymous> (crud.js:957)at invokeWithErrorHandling (vue.runtime.esm.js:1854)at VueComponent.Vue.$emit (vue.runtime.esm.js:3882)at VueComponent.toggleRowExpansion (element-ui.common.js:10306)at VueComponent.toggleRowExpansionAdapter (element-ui.common.js:11066)at VueComponent.toggleRowExpansion (element-ui.common.js:13627)```
解决方案:
去掉$table.toggleRowExpansion,在el-table增加绑定:expand-row-keys="expandRowKeys" :row-key="getRowKey"
采用expandRowKeys属性数据进行控制。

<el-table ref=“table” v-loading=“crud.loading” :data=“crud.data” size=“small” style=“width: 100%;” :row-key=“getRowKey” :expand-row-keys=“expandRowKeys” @sort-change=“crud.changeTableSort” @selection-change=“crud.selectionChangeHandler”>

data(){
return {
expandRowKeys: [],

}
methods: {
// 展开时需要
getRowKey(row){
return row.id;
},

// 查看专题项详情
toogleExpand(row) {
let t a b l e = t h i s . table = this. table=this.refs.table;
this.topicDetail = []
this.expandRowKeys = []
this.crud.data.map((item) => {
if (row.id != item.id) {
// $table.toggleRowExpansion(item, false)
item.hasExpand = false
}else {
if (!item.hasExpand) {
this.expandRowKeys.push(item.id)
item.hasExpand = true
}
}
})
// 显示该条目明细
getDetailList(row.id).then(res => {
this.topicDetail = res.content
})
// $table.toggleRowExpansion(row,true)
},

这篇关于vue.runtime.esm.js:1888 TypeError: Cannot read property ‘forEach‘ of undefined at VueComponent.<的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913266

相关文章

HTML5 Mobile Upload

HTML5移动端图片上传并前端预览 用到了HTML5的FileReader对象,主要思想是由于移动端的网络不比PC快,故需要做上传前预览,采用base64编码目前是比较好的方法。前端用FileReader获取图片并转为base64编码并<img>预览,上传到服务器由后台解码生成图片并保存到磁盘。 核心代码: $('input[type=file]').change(function(){

html5 progress元素

progress元素是HTML5中新增的状态交互元素,用来表示页面中某个任务完成的进度,IDL定义如下: interface HTMLProgressElement : HTMLElement {attribute double value;attribute double max;readonly attribute double position;readonly attribut

HTML5上传图片base64编码显示缩略图

<li><label for="username">营业执照</label><a href="javascript:void(0);" class="cert-btn-blue-add"><span class="icon-add-white"></span><input type="file" capture="camera"/>添加图片</a><a class="cert-arrow-ri

jQuery插件 笔记

//闭包限定命名空间(function ($) {//默认参数var defaluts = {foreground: 'red',background: 'yellow'};$.fn.extend({"highLight": function (options) {var opts = $.extend({}, defaluts, options); //使用jQuery.extend 覆盖

JS window对象的top、parent、opener说明

1.top     该变更永远指分割窗口最高层次的浏览器窗口。如果计划从分割窗口的最高层次开始执行命令,就可以用top变量。  2.opener opener用于在window.open的页面引用执行该window.open方法的的页面的对象。例如:A页面通过window.open()方 法弹出了B页面,在B页面中就可以通过opener来引用A页面,这样就可以通过这个对象来

uni-app获取手机通讯录(基于HTML5+)

官方API:https://www.html5plus.org/doc/zh_cn/contacts.html   话不多说,直接上代码 contacts.vue <template><view><button type="primary" @tap="getContacts">获取联系人</button><block v-for="(item,index) in list" :k

好用的vue富文本编辑器记录

vue-quill-editor https://github.com/surmon-china/vue-quill-editor https://www.npmjs.com/package/vue-quill-editor https://blog.csdn.net/nickroprak/article/details/86645519(自定义图片上传) *默认上传图片为base64编吗

vuex重点笔记

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 这个状态自管理应用包含以下几个部分: state,驱动应用的数据源;view,以声明方式将 state 映射到视图;actions,响应在 view 上的用户输入导致的状态变化。 但是,当我们的应用遇到多个组件共享状态时,单向数据流的简

vue 电脑端调摄像头拍照,canvas转base64,base64转图片文件并上传到服务器

VUE(用了iview):  <template><div id='cameraUpload'><Form ref='member' :label-width='120' :model='member' :rules='memberRule' style='width: 600px'><FormItem label='照片' prop='photo'><div v-if="member.phot