Bootstrap Vue-将卡数据作为有效载荷传递 [英] Bootstrap Vue - Passing Card Data as a payload

查看:158
本文介绍了Bootstrap Vue-将卡数据作为有效载荷传递的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用bootstrap vue时是否有类似的方式来传递卡片数据(如rowData)?

Is there a similar way to pass card data like rowData when using bootstrap vue?

我正在使用此功能将卡数据提交到状态,但似乎不起作用.我正在使用类似的方法来传递rowData,并且效果很好.

I am using this function to commit card data to the state and it doesn't seem to work. I am using a similar method to pass rowData and it works fine.

卡数据

动作...

setCard: function ({commit}, cardData) {
  commit('setCardToState', cardData)
}

突变...

setCardToState (state, cardData) {
  state.addeditinitiative.name = cardData.name
  state.addeditinitiative.description = cardData.description
  state.addeditinitiative.id = cardData.id
},

模板

<b-card v-for="initiative in initiatives" v-b-modal.NewInitiativeModal @click="setCard">
        {{initiative.name}}
      </b-card>

行数据

模板

<b-table striped
             hover
             responsive
             :items="products"
             :fields="fields"
             :filter="reportFilter"
             :current-page="currentPage"
             :per-page="10"
             v-b-modal.EditProductModal
             @row-clicked="setRow"></b-table>
  </b-row>

动作

 setRow: function ({commit}, rowData) {
  commit('setRowToState', rowData)
},

突变

setRowToState (state, rowData) {
  state.addeditproduct.name = rowData.name
  state.addeditproduct.productline = rowData.productline
  state.addeditproduct.description = rowData.description
  state.addeditproduct.externalid = rowData.externalid
  state.addeditproduct.active = rowData.active
  state.addeditproduct.id = rowData.id
},

推荐答案

可能是Vue反应性问题.您可以使用deepCopy(例如:JSON.parse(JSON.stringify())使其具有反应性

It might be Vue reactivity problem. You can use deepCopy (ex: JSON.parse(JSON.stringify()) to make it reactive

setCardToState (state, cardData) {
  state.addeditinitiative.name = cardData.name
  state.addeditinitiative.description = cardData.description
  state.addeditinitiative.id = cardData.id
  state.addeditinitiative = JSON.parse(JSON.stringify(state.addeditinitiative))
}

顺便说一句,使用v-for

<b-card v-for="(initiative, index) in initiatives" :key="index" v-b-modal.NewInitiativeModal @click="setCard">
        {{initiative.name}}
</b-card>

这篇关于Bootstrap Vue-将卡数据作为有效载荷传递的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆