diff --git a/packages/vuetify/src/labs/VTreeview/VTreeviewChildren.tsx b/packages/vuetify/src/labs/VTreeview/VTreeviewChildren.tsx index 8d749d146784..42c8bb9e77b4 100644 --- a/packages/vuetify/src/labs/VTreeview/VTreeviewChildren.tsx +++ b/packages/vuetify/src/labs/VTreeview/VTreeviewChildren.tsx @@ -62,12 +62,12 @@ export const VTreeviewChildren = genericComponent props.openOnClick != null ? props.openOnClick : props.selectable) - function checkChildren (item: any) { + function checkChildren (item: any, itemValue: any) { return new Promise(resolve => { if (!props.items?.length || !props.loadChildren) return resolve() if (item?.children?.length === 0) { - isLoading.value = item.value + isLoading.value = itemValue props.loadChildren(item).then(resolve) return @@ -86,7 +86,7 @@ export const VTreeviewChildren = genericComponent slots.default?.() ?? props.items?.map(({ children, props: itemProps, raw: item }) => { - const loading = isLoading.value === item.value + const loading = isLoading.value === itemProps.value const slotsWithItem = { prepend: slotProps => ( <> @@ -133,7 +133,7 @@ export const VTreeviewChildren = genericComponent checkChildren(item), activatorProps.onClick] as any : undefined, + onClick: isClickOnOpen.value ? [() => checkChildren(item, itemProps.value), activatorProps.onClick] as any : undefined, } return (