diff --git a/src/runtime/components/data/Table.vue b/src/runtime/components/data/Table.vue index 8a55b6cd..473cc5ac 100644 --- a/src/runtime/components/data/Table.vue +++ b/src/runtime/components/data/Table.vue @@ -290,12 +290,16 @@ export default defineComponent({ function compare (a: any, z: any) { if (typeof props.by === 'string') { - const property = props.by as unknown as any - return a?.[property] === z?.[property] + const accesorFn = accessor(props.by) + return accesorFn(a) === accesorFn(z) } return props.by(a, z) } + function accessor > (key: string) { + return (obj: T) => get(obj, key) + } + function isSelected (row: TableRow) { if (!props.modelValue) { return false