我正在开发一个Vue网页来显示GitLab管道。我有一个主要的Vue组件(即“ Monitor.vue”)和X个子组件,它们显示了我的GitLab实例上每个X项目的管道计划(称为“ Schedules.vue”)。
在“监视器”中,我想要一个复选框,该复选框将使尚未计划管道的项目的计划容器消失。这是我为此写的:
Monitor.vue:
<template>
<input type="checkbox" value="false" v-model="checked">
Show only projects that have scheduled pipelines
<div v-if="checked">Checkbox checked!</div>
<div class="row">
<div v-for="project in projects" :key="project.id">
<Schedules :checkBoxChecked="checked"></Schedules>
</div>
</div>
</template>
<script>
import Schedules from "./Schedules.vue";
export default {
components: {
Schedules
},
data() {
return {
checked: false
};
}
};
<script>
Schedules.vue:
<template>
<div v-if="checkBoxChecked">
No scheduled pipelines yet.
</div>
<div v-else>
<!-- Display pipelines here -->
</div>
</template>
<script>
export default {
name: "Schedules",
props: "checkBoxChecked"
};
</script>
现在,当我选中复选框时,checked
的值确实在Monitor中发生了变化,但是当我尝试将其传递给子组件时,Web控制台中未定义的checkBoxChecked的值。
我在这里忘记了什么?
答案 0 :(得分:2)
props
属性不是字符串,它是数组或对象
export default {
name: "Schedules",
props: {
checkBoxChecked: {
type: Boolean,
default: false
}
}
};
答案 1 :(得分:0)
props
是一个对象
在Schedules.vue中:
<script>
export default {
name: "Schedules",
props: {
"checkBoxChecked": Boolean
}
};
</script>