Vue组件在商店中更改其自己的属性

时间:2018-11-27 00:25:08

标签: javascript vuejs2 vuex

好的,这很难解释,但是我会尽力的。

我从vuex存储中的一系列卡片中以循环方式呈现了一些组件

<card-base
        v-for="(card, i) in cards"
        :class="`dashboard-card ${card.hidden ? 'hidden' : ''}`">

请注意取决于card.hidden的类,该类在加载时为 false

现在,每个<card-base>都有一个按钮(隐藏),应该隐藏它。

我尝试做到的方式是: 卡基组件中的v-btn获得@click属性,该属性调用方法。

问题/问题

现在,我要将点击的卡片的hidden属性设置为true。

当然

  minimizeDashboardCard() {
    console.log(this.hidden)
    this.hidden = true
  }

不起作用,因为this不是来自vuex的实际对象,vuex提供了反应性,而只是“元素”。 如果我设置了this.hidden = true,则没有任何变化(除了console.log第一次单击后正确显示“ true”)

但是如何从this访问实际的vuex对象?如何获取要在数组中编辑的 index ?有没有办法让卡片组件“说”类似这样的东西:

“在实际的vuex数组中调度更改 ME 的操作”?

dispatch('hideCard', this)一样有效吗?

TLDR

我如何找出阵列中被点击的卡片的索引,或以其他任何方式直接定位它?呈现的元素与存储中定义该元素的数组之间是否存在连接?

我希望你理解我的问题:D 谢谢!

0 个答案:

没有答案