报错Invalid prop: type check failed for prop "loading". Expected Boolean, got Array
时间: 2023-08-03 11:59:48 浏览: 161
vue_devtools_chrome_5.3.4.crx Chrome浏览器Vue调试插件
抱歉,我在之前的代码中犯了一个错误。在List组件的props中,`loading`应该是一个Boolean类型的属性,而不是一个Array类型的属性。请使用以下修正后的代码:
```vue
<template>
<div class="list-container">
<van-list
v-model="list"
:finished="finished"
:error="error"
:offset="offset"
:loading="loading"
:loading-text="loadingText"
:finished-text="finishedText"
:error-text="errorText"
:immediate-check="immediateCheck"
:direction="direction"
@load="onLoad"
>
<template v-slot:item="{ item }">
<!-- 这里是列表项的展示内容 -->
<div class="list-item">{{ item }}</div>
</template>
</van-list>
</div>
</template>
<script>
export default {
name: 'List',
props: {
value: {
type: Array,
default: () => []
},
finished: {
type: Boolean,
default: false
},
error: {
type: Boolean,
default: false
},
offset: {
type: Number,
default: 300
},
loading: {
type: Boolean,
default: false
},
loadingText: {
type: String,
default: '加载中...'
},
finishedText: {
type: String,
default: '没有更多了'
},
errorText: {
type: String,
default: '加载失败,请重试'
},
immediateCheck: {
type: Boolean,
default: true
},
direction: {
type: String,
default: 'down'
}
},
data() {
return {
list: this.value
}
},
methods: {
onLoad() {
// 触发load事件,外部可以监听该事件进行数据加载
this.$emit('load')
}
},
watch: {
value(newVal) {
this.list = newVal
}
}
}
</script>
<style scoped>
/* 这里是组件的样式 */
.list-container {
/* 样式代码 */
}
.list-item {
/* 样式代码 */
}
</style>
```
请将上述修正后的代码替换掉之前的List组件代码,并在使用案例中相应地修改props的名称为`loading`。
非常抱歉给你带来了困扰,希望这次的修正能够解决问题。如果还有其他疑问,请随时提出。
阅读全文