【问题标题】:Passing the value of checkbox to child component in Vue将复选框的值传递给Vue中的子组件
【发布时间】:2019-02-20 23:11:50
【问题描述】:

我正在开发一个用于显示 GitLab 管道的 Vue 网页。我有一个主要的 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 的值。

我在这里忘记了什么?

【问题讨论】:

  • 在这两种情况下都是undefined,或者在你点击复选框之后
  • @mooga 在这两种情况下。

标签: vue.js checkbox


【解决方案1】:

props 属性不是字符串,而是数组或对象

export default {
    name: "Schedules",
    props: {
        checkBoxChecked: {
            type: Boolean,
            default: false
        }
    }
};

【讨论】:

  • 哈,到目前为止我只需要处理字符串属性。直到,谢谢斯蒂芬!
【解决方案2】:

props 是一个对象 在 Schedules.vue 中:

<script>
  export default {
    name: "Schedules",
    props: {
       "checkBoxChecked": Boolean
    }
  };
</script>

【讨论】:

    猜你喜欢
    • 2022-01-27
    • 2017-12-02
    • 2015-06-07
    • 1970-01-01
    • 2020-04-23
    • 2018-10-30
    • 2018-09-14
    • 1970-01-01
    • 2020-03-28
    相关资源
    最近更新 更多