首页 > 解决方案 > 将 2 个参数从数组传递给 vuex 动作

问题描述

我需要将 2 个参数传递给我在商店中的操作:

<tr v-for="printer in printers" :key="printer.id" >
   <td>
      <p >{{printer.name}}</p>
    </td>
    <td>
      <div v-for="preparation_area in preparation_areas" :key="preparation_area.id">
         <button class="primary-light inline"  @click="setPreparationAreaPrinter(printer, preparation_area)">{{preparation_area.name}}</button>
      </div>
   </td>
</tr>

店铺:

setPreparationAreaPrinter ({commit}, printer, preparation_area) {
  axios.patch('/preparation_areas/' + preparation_area.id, {
    printer: printer.id,
  })
 .then((response) => {  
.....
  });
}

printer.id 工作并分配正确的打印机名称,但preparation_area 未确定。实施它的正确方法是什么?

标签: vue.jsvuex

解决方案


您只能传递 1 个参数,因此如果您需要传递 1 个以上的参数,请使用数组。一个数组有资格作为 1 个参数。然后你可以通过 data[0] 和 data[1] 访问动作中的每个参数

store.dispatch('setSplitData',[data[0], data[1]])

// 在动作中:setSplitData (context, [data1, data2]) { // 使用 ES6 参数解构

//...或使用对象:store.dispatch('setSplitData',{ data1: data[0], data2: data [1], })


推荐阅读