Error in nextTick: “TypeError: Cannot read properties of undefined (reading ‘toggleRowSelection‘)“
Error in nextTick: “TypeError: Cannot read properties of undefined (reading ‘toggleRowSelection’)”在使用elementUI里的带Checkbox表格时,想默认选中第一行,采组件库里的方法:mounted() {this.defaultChecked([this.nodesData[0]]);},met
·
Error in nextTick: “TypeError: Cannot read properties of undefined (reading ‘toggleRowSelection’)”
在使用elementUI里的带Checkbox表格时,想默认选中第一行,采组件库里的方法:
mounted() {
this.defaultChecked([this.nodesData[0]]);
},
methods: {
// 第一行默认选中
defaultChecked(rows) {
this.$nextTick(() => {
console.log(this.$refs.multipleTable);
this.nodesData.forEach(row => {
this.$refs.multipleTable.toggleRowSelection(row, true);
}
});
});
}
}
或者直接在mounted()里面写:
this.$refs.multipleTable.toggleRowSelection(this.nodesData[0], true);
都不能实现想要的效果,用了setTimeout延时调用还是不行,一直报toggleRowSelection未定义。
所以只能去找解决方法:
// 第一行默认选中
defaultChecked() {
var that = this;
that.$nextTick(() => {
console.log(this.$refs.multipleTable);
that.nodesData.forEach(row => {
for (const j in that.multipleSelection) {
if (row.id === that.multipleSelection[j].id) {
console.log('same');
that.$refs.multipleTable.toggleRowSelection(row, true);
}
}
});
});
},
// 在调用的时候延时三秒
// 在调用接口获取表格内容后调用
setTimeout(() => {
this.defaultChecked();
}, 3000);// 测试过了,比三秒短的话,还是会报错
找到的解释是:刚开始逻辑虽然能够正常执行,但是由于DOM并没有更新完,所以打印this.$refs为空。
暂时先记一下,之后再补充。
更多推荐
已为社区贡献8条内容
所有评论(0)