antd tableコンポーネントがページをめくった後にselectionRowsが空になる問題を解決します
1293 ワード
vuexを使用してデータを格納する
tableのonChangeイベントを書き換える
注意vuexのクリーンアップ
export const table = {
namespaced: true,
state: {
selectedRowKeys: [], //
selectionRows: [], //
allRows: new Map //
},
mutations: {
//
clearSelections(state) {
state.selectedRowKeys = []
state.selectionRows = []
state.allRows = new Map
},
// selectedRowKeys
updateRecords(state, vuexData) {
state.selectedRowKeys = vuexData.selectedRowKeys
// allRows selectedRowKey key
let tempRows = vuexData.selectionRows
tempRows.forEach(val => {
state.allRows.set(val.id, val)
})
// selectedRowKeys allRows selectionRows
state.selectionRows = []
vuexData.selectedRowKeys.forEach(val => {
state.selectionRows.push(state.allRows.get(val))
})
}
}
}
tableのonChangeイベントを書き換える
onSelectChangePlus(selectedRowKeys, selectionRows) {
let vuexData = {selectedRowKeys,selectionRows}
this.$store.commit('table/updateRecords',vuexData);
this.selectedRowKeys = selectedRowKeys;
this.selectionRows = this.$store.state.table.selectionRows
//
this.$emit("receive",this.selectionRows);
}
注意vuexのクリーンアップ
this.$store.commit('table/clearSelections')