我是vuejs的新手,正在尝试使用buefy库。
错误:
无效的道具:道具“数据”的类型检查失败。预期的数组,得到对象
public class Cat : Animal
{
public override int X { get; set; }
}
json内容:
<template>
<b-table :data="data" :columns="columns"></b-table>
</template>
<script>
export default {
data() {
return {
data: this.data,
columns: [
{
field: 'name',
label: 'Name',
},
]
}
},
mounted() {
axios
.get('/test')
.then(
response => (this.data = response)
)
}
}
</script>
我想念什么?谢谢:)
答案 0 :(得分:1)
正如我在此处(https://buefy.org/documentation/table#api-view看到Buefy doc一样,表组件期望数据作为对象数组。
Axios详细返回了响应,您正在将response
分配给this.data
以及导致该错误的对象。因此,您的数据将以response.data
data() {
return { data: []}
}
async mounted() {
try {
const { data } = await axios.get('/test')
this.data = data
} catch(err) {
console.err(err)
}
}
万一有人怀疑,如何声明具有多种类型的道具。这是一个例子。
...
props: {
value: {
type: String | Number | Boolean | Object, or [Number, String, Object]
default: ''
}
}
答案 1 :(得分:0)
数据声明属性应如下:
data: []
更新的代码:
<script>
export default {
data() {
return {
data: [],
columns: [
{
field: 'name',
label: 'Name',
},
]
}
},
mounted() {
axios
.get('/test')
.then(
response => (this.data = response)
)
}
}
</script>
答案 2 :(得分:0)
知道了!
<script>
export default {
data() {
return {
data: [],
columns: [
{
field: 'name',
label: 'Name',
},
]
}
},
mounted() {
axios
.get('/test')
.then(
response => (this.data = response.data)
)
}
}
</script>
Thx:)