1 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
請(qǐng)說(shuō)明您如何更新“params”。
如果代碼“params.attrs.test = true”中有類(lèi)似的內(nèi)容,那么defaultParams將被更改
如果old[type]不是簡(jiǎn)單類(lèi)型,它會(huì)在 defaultParams 中存儲(chǔ)對(duì)同一對(duì)象的引用。defaultParams.attrs === params.attrs。因?yàn)樵诔跏蓟陂g您解構(gòu)了一個(gè)對(duì)象,但沒(méi)有解構(gòu)其嵌套對(duì)象。
問(wèn)題就在這里:old[type][key] = value
解決方案:
const setParam = (key, value, type = null) => {
setParams(old => {
if (type) {
old[type] = {
...old[type],
key: value,
}
} else old[key] = value
return { ...old }
})
}
添加回答
舉報(bào)