[英]Error with spread operation in array. TS1005: ',' expected. TypeScript
我無法弄清在row.sections[SECTION_ID
上錯過了什么。 它總是向我顯示錯字錯誤','...
常見問題解答:
sections
是一個內部包含objects
的數組。 在這種情況下,我嘗試修改由自定義標記SECTION_ID創建的部分的特定對象。
PS
我也嘗試將row.sections[SECTION_ID]
放在一個額外的方括號[]
,但不幸的是,這無濟於事。
rows: state.rows.map(
row =>
row.ID === action.rowID
? {
...row,
sections: [
...row.sections,
row.sections[SECTION_ID]: { // error is here
...row.sections[SECTION_ID],
data: {
...// some data
}
}
]
}
: row
)
您無法通過spread
操作以這種方式對array
內的某些element
突變。 使用這種方法,您將每次都將一個新的,變異的element
添加到同一array
。 因此,如果您想使其正確,則需要使用map
迭代器:
rows: state.mymaps.rows.map(
row =>
row.ID === action.rowID
? {
...row,
sections: row.sections.map(
(section, index) =>
index === JOIN_SECTION_ID
? {
...section,
data: {
...section.data
}
} : section
)
} : row
)
如果您試圖替換數組某個索引處的元素而不更改數組,則可以對數組進行淺表復制,然后在該索引處設置值。 例如:
state.rows.map((row) => {
if (rowID !== action.rowID) {
return row;
}
const sectionCopy = [...row.sections];
sectionCopy[SECTION_ID] = {
...row.sections[SECTION_ID],
data: {
// some data
},
};
return {
...row,
sections: sectionCopy,
};
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.