【问题标题】:Vuejs: update Map prop value for child componentVuejs:更新子组件的地图道具值
【发布时间】:2020-01-03 11:03:28
【问题描述】:

我在父组件中有一个数组和一个映射。
通过使用一个按钮,我更新了它们的值。
我预计一旦道具值更改,这两个值都会自动更新,但只有数组被更新。
如何在子组件中监听 Map 的更新?

// Parent Component
<template>
  <div>   
    <ChildComponent :map-data.sync="mapData" :array-data.sync="arrayData"></ChildComponent>
    <br>
    <b-button variant="outline-primary" v-on:click.prevent="updateData">update data</b-button>
  </div>

</template>

<script>
  export default {
    name: "Parent-Component",
    components: {
      ChildComponent
    },
    data() {
      return {
        mapData: new Map(),
        arrayData: []
      }
    },
    created() {
      this.mapData.set("A", 0);
    },
    methods: {
      updateData() {
        this.mapData.set("A", this.mapData.get("A") + 1);
        this.arrayData.push("newData");
      }
    }
  };
</script>


// Child component script
<script>
  export default {
    name: "Child-Component",
    props:['arrayData', 'mapData'],
    components: {
    },
    watch: {
      mapData: function () {
        console.log("this is never called");
      },
      arrayData: function() {
        console.log("this is called as expected");
      }
    }
  };
</script>

【问题讨论】:

    标签: vue.js


    【解决方案1】:

    地图反应性,IMK,在 Vue 中仍然不支持。你可以找到这个here的详细解释(和可能的解决方法)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-10
      • 2019-06-13
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 2020-08-07
      相关资源
      最近更新 更多