2 回答

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
你可能會無意中碰到“不變性”。
我懷疑您的響應(yīng)對象是通過HttpResponse
返回的,其主體(根據(jù)文檔)是只讀的。
即使這不是這里的根本原因,通常最好避免直接修改對象(如服務(wù)器響應(yīng))。更好的方法是創(chuàng)建一個(gè)新對象并修改新對象。
請嘗試以下一種或兩種方法:
const requestObject: any = {
"type": 'type1',
"start": 0,
"size": 10,
"keywords": ['abcd','efgh'],
filters: [],
}
// -----------
// solution 1:
// create a new object by spreading the old one and overwriting the 'keywords' item
const updatedRequest = {...requestObject, keywords: ['pqr'] }
console.log(updatedRequest)
// -----------
// solution 2:
// deep copy via JSON.stringify + JSON.parse
const clonedRequest = JSON.parse(JSON.stringify(requestObject))
clonedRequest.keywords = ['pqr']
console.log(clonedRequest)

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
當(dāng)我在控制臺中測試代碼時(shí),
{
"type": 'type1',
"start": 0,
"size": 10,
"keywords": ['abcd','efgh'],
filters: [],
}
被賦給變量 ,而不是 。這是有道理的,就像你正在做的那樣,它將=符號之后的所有內(nèi)容分配給,并且不返回任何內(nèi)容。另外,我不認(rèn)為使用冒號進(jìn)行賦值在對象定義之外有效。結(jié)果對我來說對象是未定義的。您可能希望將作業(yè)替換為anyrequestObjectany =any
requestObject = {
"type": 'type1',
"start": 0,
"size": 10,
"keywords": ['abcd','efgh'],
filters: [],
}
添加回答
舉報(bào)