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
    this.$refs
    执行console.log时,我会得到questionId和
  • 已尝试(仍在安装中):
仍未定义



编辑:添加日志截图

我发现了问题所在

我试图在
挂载的
部分中执行此操作,但页面似乎没有呈现,因此
这个。$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;
    }
},