【发布时间】:2021-09-23 03:44:57
【问题描述】:
我的 NuxtJS 项目中有 Users.vue component。它看起来像:
<template>
<section>
<h1>{{ pageTitle }}</h1>
<ul>
<li v-for="user of users" :key="user">
<a href="#" @click.prevent="goTo(user)">User {{ user }}</a>
</li>
</ul>
</section>
</template>
<script>
export default {
asyncData() {
return new Promise(resolve => {
setTimeout(() => {
resolve({
users : [1,2,3,4,5]
})
}, 3000)
})
},
data() {
return {
pageTitle: "Это страница с пользователями"
}
},
methods: {
goTo(user) {
return this.$router.push('/users/' + user)
}
}
}
</script>
当我在 asyncData() 中使用 promise 时,出现错误 [Vue warn]: Property or method "users" is not defined on the instance but referenced during render.通过初始化该属性,确保该属性在数据选项或基于类的组件中是反应性的。
【问题讨论】:
-
asyncData()仅在页面组件中可用。先获取页面组件asyncData()中的用户数据,传递给页面组件内部的组件 -
感谢您的回答。但是如何将数据从页面传递到组件?
-
通过道具。或者使用
fetch()钩子。
标签: javascript vue.js promise vue-component nuxt.js