2 回答

TA贡献1934条经验 获得超2个赞
你可能会无意中碰到“不变性”。
我怀疑您的响应对象是通过HttpResponse
返回的,其主体(根据文档)是只读的。
即使这不是这里的根本原因,通常最好避免直接修改对象(如服务器响应)。更好的方法是创建一个新对象并修改新对象。
请尝试以下一种或两种方法:
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贡献1995条经验 获得超2个赞
当我在控制台中测试代码时,
{
"type": 'type1',
"start": 0,
"size": 10,
"keywords": ['abcd','efgh'],
filters: [],
}
被赋给变量 ,而不是 。这是有道理的,就像你正在做的那样,它将=符号之后的所有内容分配给,并且不返回任何内容。另外,我不认为使用冒号进行赋值在对象定义之外有效。结果对我来说对象是未定义的。您可能希望将作业替换为anyrequestObjectany =any
requestObject = {
"type": 'type1',
"start": 0,
"size": 10,
"keywords": ['abcd','efgh'],
filters: [],
}
添加回答
举报