将复选框的值传递给Vue中的子组件

时间:2019-02-20 14:50:00

标签: vue.js checkbox

我正在开发一个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的值。

我在这里忘记了什么?

2 个答案:

答案 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>