Vue.js VueJS:加载时滚动到表的行
我有一个表(来自元素框架),里面有一个问题列表。我可以选择一个修改,做我的事情,一旦我验证,我希望页面滚动到修改后的问题Vue.js VueJS:加载时滚动到表的行,vue.js,scroll,element,ref,Vue.js,Scroll,Element,Ref,我有一个表(来自元素框架),里面有一个问题列表。我可以选择一个修改,做我的事情,一旦我验证,我希望页面滚动到修改后的问题 <template> <div> <el-table :data="list"> <el-table-column :label="$t('label')" width="300"> <
<template>
<div>
<el-table :data="list">
<el-table-column :label="$t('label')" width="300">
<template slot-scope="scope">
<span :ref="list[scope.$index].id">{{ list[scope.$index].label }}</span>
</template>
</el-table-column>
questionId很好,但其余的未定义
如果我尝试记录this.refs
,我会得到一些东西
我怎样才能让它工作
我尝试过的解决方案:
- 添加:
到this.$refs[this.$route.params.questionId].scrollIntoView()
装入的
部分,我得到
TypeError:“\u this.$refs[\u this.$route.params.questionId]未定义”
- 手动添加questionId,如
,相同错误this.$refs(questionId).scrollIntoView()
- 对
和this.$route.params.questionId
执行console.log时,我会得到questionId和this.$refs
- 已尝试(仍在安装中):
编辑:添加日志截图我发现了问题所在 我试图在
挂载的
部分中执行此操作,但页面似乎没有呈现,因此这个。$refs[this.$route.params.questionId].scrollIntoView()
无法工作(因此我得到的未定义的
结果)
解决方案:
在
部分,我添加了
updated() {
if(this.scrollOnLoad && this.$route.params.questionId){
this.scroll();
this.scrollOnLoad = false;
}
},
如图所示,一旦安装部件完成,就会发生这种情况
警告
更新
将在您执行操作时激活,例如单击文本输入(如我的情况)。我通过在数据
部分使用布尔值(更新了上面的代码以匹配解决方案)解决了这个问题。此外,如果我尝试控制台.log(this.$refs)
,我确实似乎得到了包含所有信息的列表,我只是不知道如何访问它。您可以共享该输出的一些示例吗(this.$refs
)@User28在编辑中添加了图片,这只针对一个问题,然后您应该执行类似于的操作。$refs[this.$route.params.questionId].scrollIntoView()
。我将这一行添加到我的挂载的部分中,我现在有一个错误:未处理的承诺拒绝类型错误:“\u this.$refs[\u this.$route.params.questionId]未定义“
this.$nextTick(() => {
this.$refs[this.$route.params.questionId].scrollIntoView()
});
updated() {
if(this.scrollOnLoad && this.$route.params.questionId){
this.scroll();
this.scrollOnLoad = false;
}
},