【发布时间】:2019-08-19 22:16:02
【问题描述】:
我有 2 个 vue 组件。一个父组件:list of services 存储了许多service 组件。
服务.vue
<template lang="pug">
a.list-group-item.list-group-item(id='list-' + name + '-list' data-toggle="list" href="#list-" + name role="tab" aria-controls=name) {{ name }}
</template>
<script>
export default {
props: {
name: String,
description: String
}
}
</script>
List.vue
<template lang="pug">
section.border-bottom.border-warning
.container(style="background-color: #EA846F")
.text-white.text-center.title Serviciile oferite
.list-group#list-tab(v-if="response.status === 200" role="tablist")
service(v-for="service in response.data" :name="service.name" :description="service.description")
.h5.text-muted.text-center(v-else) {{ response.statusText }}
</template>
<script>
import service from './service';
import axios from 'axios';
export default {
data() {
return {
response: {},
}
},
components: {
service
},
methods: {
async getAll() {
this.response = await axios.get('http://localhost:3000/infos');
}
},
async mounted() {
await this.getAll();
}
为什么name作为道具发送并用于服务模板是undefined?我该如何解决这个问题?
【问题讨论】:
-
大多数时候它只是
undefined,因为它是undefined- 您是否调试过您的回复? -
@Estradiaz
{{ name }}从标签末尾返回预期值 -
那么您的问题是什么 - 您没有在其他任何地方使用
"name"? -
问题是:像href
href="#list-" + name这样的标签的属性返回我#list-undefined而不是名称值。 -
让你的
mounted生命周期挂钩async不会完成任何事情。 Vue 不会等待它完成。你还不如mounted() { this.getAll() }