【发布时间】:2019-10-05 14:43:11
【问题描述】:
我正在制作基于 Router-View 的应用程序,并尝试创建填充来自反应属性的数据的表。到目前为止,我收到了一个未定义的错误:
“属性或方法“消息”未在实例上定义,但在渲染期间被引用。通过初始化属性,确保此属性是反应性的,无论是在数据选项中,还是对于基于类的组件。
这是脚本:
<script>
import axios from 'axios'
export default {
data () {
return {
messages : [],
}
},
mounted() {
this.getMessages()
},
methods: {
getMessages() {
let uri = 'http://localhost:8000/api/messages'
axios.get(uri).then(response => {
this.messages = response.data.data
})
},
}
}
这是模板:
<table class="table">
<thead>
<tr>
<th>Title</th>
<th>Content</th>
<th>Options</th>
</tr>
</thead>
<tbody>
<tr v-for="message in messages">
<td>{{ message.title }}</td>
</tr>
</tbody>
</table>
我已经阅读了 VueJS 文档,查看了其他一些项目,我确信它是正确的。我有父 App.js,我在其中定义了 Router-View 页面。
【问题讨论】:
-
如果您在
this.messages = response.data.data上方的行中执行console.log(response.data.data)会得到什么? -
你试过撒谎吗..
<tbody v-if="messages">或<tbody v-if="messages.length > 0">..? -
@BenjaminBeganović 我确定长度是 1
-
嗯,那是
> 0,对吧?你使用 Vue devtools 扩展吗? -
@BenjaminBeganović 是的
length > 0 is True。我正在使用 Vue Dev Extensions,它似乎在消息组件中没有任何属性。我正在使用侧边栏组件,它是唯一具有属性的组件。此外,消息组件中的控制台日志不起作用,但它在主组件中起作用
标签: javascript laravel vue.js