【发布时间】:2026-01-06 15:55:02
【问题描述】:
我在 Nuxt/Vuex 中有一个多行表单,我成功地对行进行了 CRUDing。我可以创建、更新和删除行。沙盒在这里。 https://codesandbox.io/s/multirow-fields-hkzql
我有另一种形式,我根据行中的值过滤行。我可以创建和删除行但不能更新它们。沙盒在这里。 https://codesandbox.io/s/testing-filtered-multirow-fields-24cxb
当我编辑过滤表中的字段时,我得到 [vuex] do not mutate vuex store state outside mutation handlers 错误。
// store/Table.js snippet
export const getters = {
getField,
filteredRows: state => {
return state.rows.filter(row => row.key > 1);
}
};
<!-- component/MultiRow.vue snippet -->
<tr v-for="row in filteredRows" :key="row.key">
<td>
<input v-model="row.key">
</td>
<td>
<input v-model="row.value">
</td>
<td>
<button class="btn" @click="removeRow(row)">Remove row</button>
</td>
</tr>
vuex-map-fields有解决办法吗?没有它有解决办法吗?
【问题讨论】:
-
你能分享你的“removeRow”方法吗?
-
Delete 在这两种情况下都运行良好。查看代码沙箱链接。