The set accessor does not take place whenever one does mutate the Crumbs class property value by e.g pushing into it.
I'm trying to create a class property via set syntax which I expect to handle an additional sessionStorage task. But every time, I'm going to push an item into the array, the set accessor does not take place.
The code I came up with so far is as follows ...
class Environment {
constructor() {
this.Crumbs = [];
}
set Crumbs(value) {
// debugger;
sessionStorage.setItem('_crumbs', JSON.stringify(value));
}
get Crumbs() {
// debugger;
let result = [];
if (sessionStorage.getItem('_crumbs') !== null) {
result = JSON.parse(sessionStorage.getItem('_crumbs'));
} else {
sessionStorage.setItem('_crumbs', JSON.stringify([]));
}
return result;
}
}
let env = new Environment();
let _metricId = 6;
let _concept = 'Back orders';
let _crumb = {
MetricId: _metricId,
Concept: _concept,
};
env.Crumbs.push(_crumb);
pushwon't activate the setter. You have to actually set it likeenv.Crumbs = ...Crumbsarray via mutating array methods like e.g.push,pop,unshift,shiftandsplice?