mirror of https://github.com/vuejs/core.git
parent
9d1ca320c4
commit
ef432bda77
|
@ -174,17 +174,19 @@ class MutableReactiveHandler extends BaseReactiveHandler {
|
|||
receiver: object
|
||||
): boolean {
|
||||
let oldValue = (target as any)[key]
|
||||
if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
|
||||
return false
|
||||
}
|
||||
if (!this._shallow) {
|
||||
const isOldValueReadonly = isReadonly(oldValue)
|
||||
if (!isShallow(value) && !isReadonly(value)) {
|
||||
oldValue = toRaw(oldValue)
|
||||
value = toRaw(value)
|
||||
}
|
||||
if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
|
||||
oldValue.value = value
|
||||
return true
|
||||
if (isOldValueReadonly) {
|
||||
return false
|
||||
} else {
|
||||
oldValue.value = value
|
||||
return true
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// in shallow mode, objects are set as-is regardless of reactive or not
|
||||
|
|
Loading…
Reference in New Issue