vue.js - [Vue 警告]:属性或方法“波士顿”未在实例上定义,但在渲染期间引用
问题描述
我正在设置一些道具,如下图所示。
组件 1(父级):
<template>
<div>
<span>{{agency1}}</span>
<span>{{workstation}}</span>
</div>
</template>
<script>
export default {
name: "work-station-view",
props: {
agency1: {
type: String
},
workstation: {
type: Number
}
},
data() {
return {};
}
};
</script>
组件 2(儿童):
<template>
<WorkStationView :workstation="1.1" :agency1="Boston" />
</template>
道具渲染得workstation
很好,但agency1
道具根本没有出现。我在控制台中从 Vue 收到这条消息:
[Vue 警告]:属性或方法“波士顿”未在实例上定义,但在渲染期间被引用。通过初始化该属性,确保该属性是反应性的,无论是在数据选项中,还是对于基于类的组件。请参阅:https ://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties 。
我检查了文档,因为它说要在 中定义它data()
,所以我结合了所有这些(可能更多)无济于事:
// attempt 1
data() {
agency1 = this.agency1;
return {};
}
// attempt 2
data() {
return {
agency1 = this.agency1;
};
}
// attempt 3
data() {
return {
agency1: '';
};
}
agency1
如果我对( )使用数字值<WorkStationView :workstation="1.1" :agency1="3" />
,它会显示!到底是怎么回事?
解决方案
如果您使用的是内联字符串,则应跳过:
或引用您的字符串。
:
是简写形式,v-bind
预计将与您在将属性从父组件传递给子组件时绑定的变量一起使用。在这种情况下,您没有Boston
在父上下文中调用变量,因此来自 Vue.js 的错误。
如果您只想使用一个常量字符串Boston
,就像使用它一样
<WorkstationView :workstation="1.1" :agency="'Boston'" />
或者,如果您执行以下操作,它也会起作用:
<WorkstationView :workstation="1.1" agency="Boston" />
推荐阅读
- kframework - K 中的高阶函数?
- typescript - 在 Typescript 中定义类的更短方法?
- c++ - OpenGL - 在抛出“__gnu_cxx::recursive_init_error”的实例后调用终止?
- python - 散点图的“TypeError:无效类型提升”
- xml - XML 解析:结束标记与开始标记不匹配
- c# - 使用给定值访问 json 属性
- odbc - 雪花 - 错误 [HY000] [雪花][雪花] (4)
- go - 如何在杜松子酒中对路线进行分组?
- python - 有没有办法在 python 中将我的浏览器视图从桌面更改为移动设备?
- android - 无法使用滑行在 recyclerView 中显示图像