问题
this.$nextTick(()=> {
this.$refs.multipleTable.toggleAllSelection()
this.isChecked = false
})
注意: this.$refs.multipleTable.toggleAllSelection()
必须放在this.$nextTick()
里面执行才能生效
如上所示 我希望先执行 this.$refs.multipleTable.toggleAllSelection()
,再this.isChecked = false,但是经过测试发现 this.isChecked = false
总是在前执行导致页面渲染不正确
弱鸡解决法
this.$nextTick(()=> {
this.$refs.multipleTable.toggleAllSelection()
setTimeout(() => {
this.isChecked = false
}, 100);
})
这样可以解决这个问题,但是总感觉不太好
- 尝试过 封装 async awit 但是无效 如下:
const nextTickAsync = () => {
return new Promise((resolve, reject) => {
this.$nextTick(() => {
this.$refs.multipleTable.toggleAllSelection();
resolve(true)
})
})
}
const isCheckedAsycn = () => {
return new Promise((resolve, reject) => {
this.$nextTick(() => {
this.isChecked = false
resolve(true)
})
})
}
(async () => {
await nextTickAsync()
await isCheckedAsycn()
})()
求问解决方法 ?
如何先执行完 this.$nextTick()
在执行后续的this.isChecked = false