Skip to content

Commit 02da4e3

Browse files
authored
fix(proxiedModel): don't pass reactive objects to transformIn() (#16612)
fixes #16512
1 parent 521bcf6 commit 02da4e3

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

packages/vuetify/src/composables/proxiedModel.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Utilities
2-
import { computed, ref, watch } from 'vue'
2+
import { computed, ref, toRaw, watch } from 'vue'
33
import { getCurrentInstance, toKebabCase } from '@/util'
44
import { useToggleScope } from '@/composables/toggleScope'
55

@@ -46,14 +46,12 @@ export function useProxiedModel<
4646

4747
const model = computed({
4848
get (): any {
49-
return transformIn(isControlled.value ? props[prop] : internal.value)
49+
return transformIn(toRaw(isControlled.value ? props[prop] : internal.value))
5050
},
51-
set (value) {
52-
const newValue = transformOut(value)
53-
if (
54-
(isControlled.value ? props[prop] : internal.value) === newValue ||
55-
transformIn(isControlled.value ? props[prop] : internal.value) === value
56-
) {
51+
set (internalValue) {
52+
const newValue = transformOut(internalValue)
53+
const value = toRaw(isControlled.value ? props[prop] : internal.value)
54+
if (value === newValue || transformIn(value) === internalValue) {
5755
return
5856
}
5957
internal.value = newValue

0 commit comments

Comments
 (0)