fix(runtime-dom): patch translate as an attr (#5485)

close #5462
This commit is contained in:
木杉 2022-04-13 17:16:33 +08:00 committed by GitHub
parent 154233abdb
commit 2c09969b13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 5 deletions

View File

@ -263,4 +263,11 @@ describe('runtime-dom: props patching', () => {
) )
expect(el.value).toBe('baz') expect(el.value).toBe('baz')
}) })
test('translate attribute', () => {
const el = document.createElement('div')
patchProp(el, 'translate', null, 'no')
expect(el.translate).toBeFalsy()
expect(el.getAttribute('translate')).toBe('no')
})
}) })

View File

@ -79,13 +79,13 @@ function shouldSetAsProp(
return false return false
} }
// spellcheck and draggable are numerated attrs, however their // these are enumerated attrs, however their corresponding DOM properties
// corresponding DOM properties are actually booleans - this leads to // are actually booleans - this leads to setting it with a string "false"
// setting it with a string "false" value leading it to be coerced to // value leading it to be coerced to `true`, so we need to always treat
// `true`, so we need to always treat them as attributes. // them as attributes.
// Note that `contentEditable` doesn't have this problem: its DOM // Note that `contentEditable` doesn't have this problem: its DOM
// property is also enumerated string values. // property is also enumerated string values.
if (key === 'spellcheck' || key === 'draggable') { if (key === 'spellcheck' || key === 'draggable' || key === 'translate') {
return false return false
} }