Как сохранить значение моего массива внутри javascript действия onrowselect?
У меня есть функциональность сетки дерева. Всякий раз, когда выбрана родительская строка, дочерняя будет выбираться автоматически, и наоборот. В форме древовидной сетки, если я выбираю другую родительскую строку для выбора путем развертывания/свертывания строки, и теперь мое предыдущее выбранное значение не сохраняется внутри моего метода HandleRowSelection. Как сохранить предыдущее значение?
Проще говоря, как мне сохранить свой templist , даже если мой handleRowSelection вызывается несколько раз?
handleRowSelection(evt)
{
var treeGrid =this.template.querySelector('tree-grid');
var selectRows =treeGrid.getSelectedRows();
if(selectRows.length > 0){
let templist = [];
selectRows.forEach(function (record){
templist.push(record.id);
})
// select and deselect child rows based on header row
this.dataObj.forEach(element => {
// if header was checked and remains checked, do not add sub-rows
element.items && element.items.forEach(record => {
// if header was not checked but is now checked, add sub-rows
if(!this.currentSelectedRows.includes(record.id) && templist.includes(record.id)) {
record.items.forEach(function (item){
console.log('item',item.id)
templist.push(item.id);
})
}
// if header was checked and is no longer checked, remove header and sub-rows
if(this.currentSelectedRows.includes(record.id) && !templist.includes(record.id)) {
record.items.forEach(item => {
const index = templist.indexOf(item.id);
if(index > -1) {
templist.splice(index, 1);
}
})
}
console.log('now check',templist);
// if all child rows for the header row are checked, add the header
// else remove the header
var allSelected = true;
record.items && record.items.forEach(item => {
if(!templist.includes(item.id)) {
allSelected = false;
}
})
if(allSelected && !templist.includes(record.id)) {
templist.push(record.id);
} else if(!allSelected && templist.includes(record.id)) {
const index = templist.indexOf(record.id);
if(index > -1) {
templist.splice(index, 1);
}
}
})
})
this.selectedrows = templist; // array list will hold every selected parent & child value
this.currentSelectedRows = templist; // array allow to add/edit child value
}
}