相关疑难解决方法(0)

this.$refs 或文档在 Mounted() 中不可见,除非我使用 setTimeout

我有一个奇怪的问题。我认为$refs可以从mounted()生命周期中获得

但如果我尝试log直接它是我得到未定义的对象:

mounted() {
    // logs undefined
    console.log(
      this.$refs.tabsMenu
    ) 
}
Run Code Online (Sandbox Code Playgroud)

等待 1ms 后它就被定义了,我可以得到对象

mounted() {
    setTimeout(() => {
      // logs the object
      console.log(
          this.$refs.tabsMenu
      )
    }, 1) // <-- just 1ms!
}
Run Code Online (Sandbox Code Playgroud)

对此有什么想法吗?

我的(简化的)模板如下所示

<template>
  <div>
    <baseContainer>
      <ul ref="tabsMenu" id="tabs-menu" class="flex-inline flex w-full">
        <li>Home</li>
        <!-- many more items -->
        <li>Contact</li>
      </ul>
     </baseContainer>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript lifecycle settimeout vue.js

3
推荐指数
1
解决办法
3940
查看次数

与vue和addEventListener中的数据或方法进行通信

我在使用此代码与我的数据或方法进行通信时遇到问题,

created() {
  document.addEventListener( 'touchstart', function( e ) {
    this.myData = e.changedTouches[ 0 ].screenY
  }
}
Run Code Online (Sandbox Code Playgroud)

我猜这是因为函数的范围,.这在函数内部不起作用,但是我如何与我的数据通信或激活事件监听器函数之外的任何方法呢?

javascript vue.js

2
推荐指数
1
解决办法
3588
查看次数

标签 统计

javascript ×2

vue.js ×2

lifecycle ×1

settimeout ×1