繁体   English   中英

Vue - 子组件中的访问道具,常规 javascript

[英]Vue - Access prop in child component, regular javascript

我正在从另一个 Vue 组件加载一个 Vue 组件,并将一个属性传递给该组件。 我需要在该组件的常规 javascript 中访问此属性,但无法弄清楚如何执行此操作。

简化的父组件可能如下所示:

<template>
  <div>
     <MenuEdit :menu-list="menuList"></MenuEdit>
  </div>
</template>

<script>
import MenuEdit from '@/components/MenuEdit';

export default {
  name: 'Admin',
  data: function () {
    return {
      menuList: ["Item1","Item2","Item3","Item4"]
    };
  },
  components: {
    MenuEdit
  }
}
</script>

<style scoped>
</style>

MenuEdit 可能如下所示:

<template>
  <div>
      {{ menuList }}
  </div>
</template>

<script>
//console.log(this.menuList) // Does not work.

export default {
  name: 'MenuEdit',
  props: [
      'menuList'
  ],
  methods: {
    testMenu: function() {
      console.log(this.menuList) //This works fine
    }
  }
}
</script>

<style scoped>
</style>

编辑

为了给这个问题添加一些上下文,我正在使用以下示例在 Buefy 上实现 sortablejs: https ://buefy.org/extensions/sortablejs

而不是在第一个常量的末尾调用“vnode.context.$buefy.toast.open( Moved ${item} from row ${evt.oldIndex + 1} to ${evt.newIndex + 1} )”,我想要更新组件(或者更好地说,更新相关的数组)。

在示例中,const 是在组件之外定义的,这就是我最终提出这个问题的原因。

您无法访问该道具,因为该代码(您的 console.log 所在的位置)在组件安装之前运行,甚至在它真正声明之前

如果你想在组件第一次挂载时访问东西,你可以使用挂载的生命周期方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM