Fix createElementFromAttrs bug (#31751)

The "false" value was not handled correctly, it would cause bugs in the
future (fortunately, this behavior is not used in code yet).
This commit is contained in:
wxiaoguang 2024-08-02 03:06:03 +08:00 committed by GitHub
parent d1283524b1
commit e3678356e1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 2 deletions

View File

@ -10,7 +10,9 @@ test('createElementFromAttrs', () => {
class: 'cls-1 cls-2',
'data-foo': 'the-data',
disabled: true,
checked: false,
required: null,
tabindex: 0,
});
expect(el.outerHTML).toEqual('<button id="the-id" class="cls-1 cls-2" data-foo="the-data" disabled=""></button>');
expect(el.outerHTML).toEqual('<button id="the-id" class="cls-1 cls-2" data-foo="the-data" disabled="" tabindex="0"></button>');
});

View File

@ -297,7 +297,7 @@ export function createElementFromAttrs(tagName, attrs) {
const el = document.createElement(tagName);
for (const [key, value] of Object.entries(attrs)) {
if (value === undefined || value === null) continue;
if (value === true) {
if (typeof value === 'boolean') {
el.toggleAttribute(key, value);
} else {
el.setAttribute(key, String(value));