javascript - Vue.js - 属性或方法 "blah"未在实例上定义但在渲染期间被引用

标签 javascript vue.js vuejs2

为什么 Vue 2 在父模板中静态定义了一个 prop 时会抛出一个 prop 未定义的错误?

注意:如果我将 javascript 放入 .vue 文件的脚本标记中而不是导入它,则不会抛出此错误。

错误:

Property or method "embedded" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option or for class-based components, by initializing the property. See https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.

loader.html

<div class="overlay">
  <div class="loader" v-bind:class="{ embedded }">
    <div class="loader__items">
      <div class="loader__item"></div>
      <div class="loader__item"></div>
      <div class="loader__item"></div>
      <div class="loader__item"></div>
      <div class="loader__item"></div>
    </div>
  </div>
</div>

loader.js

export default {
  props: {
    embedded: {
      default: false,
      type: Boolean,
    },
  },
};

loader.vue

<template src="./loader.html"/>
<script scr="./loader.js" lang="babel"></script>
<style src="./loader.scss" lang="scss" scoped/>

client.js

import Loader from '../../loader/loader.vue';

components: {
   Loader
}

client.html

<loader :embedded="true" />

最佳答案

假设:

导入 loader.js 时使用 src="./loader.js" 的文件在.vue文件的标记引发了初始问题中的错误。组件对象的这个实例可能在加载器组件的每个实例之间共享,其中一些具有 embedded Prop 通过了,有些则没有。这可能会打开对 <loader /> 的其他调用的大门。构造函数在实例化时重写 prop 的值。

解决方案:

切换到脚本标签内的导入和导出修复了错误:

loader.vue

<template src="./loader.html" />
<script lang="babel">
    import loader from './loader';

    export default loader;
</script>
<style src="./loader.scss" lang="scss" scoped />

关于javascript - Vue.js - 属性或方法 "blah"未在实例上定义但在渲染期间被引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49343666/

相关文章:

javascript - 在 Angular js中获取选定的值

javascript - 数学游戏 JQuery/JavaScript

javascript - 创建一个通用的 sortableTable 对象,用于仅使用 JavaScript 在每次单击列时按字母顺序对表元素进行排序

javascript - 可拖动交换后从 MySQL 获取数据

javascript - Vue.js 2可以获取主体滚动位置但不能设置主体滚动位置

javascript - 在 vuejs (axios) 和 web api 中加载图像

javascript - 组件模板应该只包含一个根元素

vue.js - vue-cli 库构建中未考虑 Vuetify 选项

vue.js - 重新加载页面是在 vue 组件中的插槽上闪烁内容

javascript - Vue.js 并非所有过渡组 child 都具有动画效果