我有一個包含 7 個物件的陣列,名為 NewClass。

當我對物件進行一些更改時,該物件失去了原來的 NewClass 名稱。
像那樣:

在陣列 [6] 中丟失了 NewClass 名稱。
那么有什么方法可以保留該物件的 NewClass 名稱嗎?
這是我處理這個陣列的函式:
useEffect(() => {
console.log(layers);
if (selectedLayerIndex && layers.length > 0) {
console.log(
'x',
layers.map((x) => {
if (x.feature.properties.editLayerId === selectedLayerIndex) {
console.log(x);
return (x = {
...x,
options: { ...x.options, color: 'cyan', fillColor: 'cyan' },
});
}
return x;
})
);
}
}, [選定層索引]);
太感謝了!
uj5u.com熱心網友回復:
通過使用x = {...x, option: {/* some changes to the class */}此處的語法,您將類更改為一個物件,這會導致您的類名丟失。
如果您想將其保留為一個類,請使用 instance.attribute 代替,請參見以下示例
class Demo {
constructor(color){
this.color = color;
}
}
var array = [new Demo('red'),new Demo('red'),new Demo('red'),new Demo('red'),new Demo('red'),new Demo('red'),new Demo('red')];
console.log('original array', array);
console.log('');
array[6] = {...array[6], color: 'blue'};
console.log(array); // array[6] have been change to a object
console.log('');
array[5].color = 'green';
console.log(array); // array[5] is still a class
console.log('');
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494257.html
標籤:javascript 反应
