This commit is contained in:
lejunyang 2025-05-05 20:38:32 +00:00 committed by GitHub
commit 23b9b993dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View File

@ -471,6 +471,14 @@ describe('defineCustomElement', () => {
container.appendChild(e)
expect(e.shadowRoot!.innerHTML).toBe('<div></div>')
})
// #12408
test('should set number tabindex as attribute', () => {
render(h('my-el-attrs', { tabindex: 1, 'data-test': true }), container)
const el = container.children[0] as HTMLElement
expect(el.getAttribute('tabindex')).toBe('1')
expect(el.getAttribute('data-test')).toBe('true')
})
})
describe('emits', () => {

View File

@ -60,7 +60,11 @@ export const patchProp: DOMRendererOptions['patchProp'] = (
} else if (
// #11081 force set props for possible async custom element
(el as VueElement)._isVueCE &&
(/[A-Z]/.test(key) || !isString(nextValue))
// #12408 check if it's hyphen prop or it's async custom element
(camelize(key) in el ||
// @ts-expect-error _def is private
((el as VueElement)._def.__asyncLoader &&
(/[A-Z]/.test(key) || !isString(nextValue))))
) {
patchDOMProp(el, camelize(key), nextValue, parentComponent, key)
} else {