徐州建設(shè)網(wǎng)站公司建網(wǎng)站費(fèi)用
由于編譯問題,把幾個(gè)type檢查給關(guān)閉了,否則錯(cuò)誤太多。
1)第一個(gè)檢查出的問題,拼寫錯(cuò)誤數(shù)組的length,寫成了lengh。
2)數(shù)組的對(duì)象引用。
torStatus = Array(8).fill({ ...defaultStatus }) as TorStatus[];
這種方式會(huì)創(chuàng)建一個(gè)長(zhǎng)度為 8 的數(shù)組 torStatus
,其中每個(gè)元素都引用了同一個(gè)對(duì)象,即 defaultStatus
對(duì)象的副本。這里的 { ...defaultStatus }
會(huì)生成一個(gè)新的對(duì)象副本,但在 fill
操作中,所有 8 個(gè)元素將引用這個(gè)同一個(gè)新對(duì)象。
因此,修改 torStatus[0]
會(huì)影響數(shù)組中的其他元素,因?yàn)樗鼈儗?shí)際上引用的是同一個(gè)對(duì)象(即數(shù)組中所有的對(duì)象是同一個(gè)內(nèi)存地址)
必須改成
torStatus = Array(8).fill(null).map(() => ({ ...defaultStatus })) as TorStatus[];
這樣,map()
會(huì)確保為每個(gè)數(shù)組元素生成一個(gè)新的對(duì)象副本,因此修改 cannyEtorStatus[0]
時(shí),不會(huì)影響到數(shù)組中的其他元素。
3)UI中值的調(diào)試方法,
一般是用console.log打印,
還可以直接在UI中顯示
調(diào)試方法直接在ui中顯示值
<div>{{record.FloorNum + "," + (Number(column.dataIndex.slice(-2)) - 1) + "," + record.torStatus[Number(column.dataIndex.slice(-2)) - 1].incar }}
</div>
4)用watch監(jiān)控變量時(shí),一個(gè)變量是有效的,另一個(gè)變量更新后屬性不怎么變化。
改成一樣的,添加 deep: true 后生效。
watch(() => props.cannyEtorGroupStatus,(newStatus, oldStatus) => {console.log("in watch props.torGroupStatus");if (newStatus != undefined) {console.log("in watch props.torGroupStatus,if (newStatus != undefined)");updateDataSourceByEtorGroupStatus(newStatus);}},{ immediate: true, deep: true } // 初始化時(shí)也會(huì)調(diào)用一次
);
因?yàn)?code>watch 只會(huì)監(jiān)聽 淺層 數(shù)據(jù)變化(即監(jiān)聽對(duì)象或數(shù)組的引用變化),而不會(huì)對(duì)對(duì)象內(nèi)部的屬性變化進(jìn)行監(jiān)聽。
當(dāng)你在 watch
中添加 deep: true
選項(xiàng)時(shí),表示你希望對(duì) 深層次的數(shù)據(jù)變化 進(jìn)行監(jiān)聽。也就是說,它會(huì)遞歸地監(jiān)控對(duì)象或數(shù)組的每一個(gè)屬性或者元素的變化,無(wú)論是對(duì)象的某個(gè)屬性,還是數(shù)組的某個(gè)元素發(fā)生變化,都會(huì)觸發(fā)回調(diào)函數(shù)。
deep: true
?用于深度監(jiān)聽對(duì)象或數(shù)組的內(nèi)部變化。- 它會(huì)遞歸地監(jiān)視對(duì)象或數(shù)組的每個(gè)屬性或元素,無(wú)論其內(nèi)容如何改變。
- 使用時(shí)要小心性能開銷,尤其是在數(shù)據(jù)結(jié)構(gòu)較大的情況下
5)模擬dtu用落地包數(shù)據(jù)本地測(cè)試