Почему трафарет версии 1+ удаляет атрибут типа из кнопки HTML?

Я недавно обновил версию ядра трафарета до последней версии, то есть 1.3.2

После обновления возникает странная проблема, в которой я не уверен, что это ошибка или предполагаемое поведение. Я прочитал журнал изменений, но не нашел ничего, связанного с проблемой

Stencil удаляет атрибут "type" из кнопок HTML в окончательном выводе, созданном из jsx внутри функции рендеринга. Это происходит только в том случае, если значение атрибута равно "submit". Оно остается неизменным, если значение равно "button".

JSX:

render() {
    return (
      <div class="dialog-footer">
        <button class="ui button blue" disabled={false} type="submit">save</button>
      </div>
    );
  }

После сборки:

 render() {
        return (h("div", { class: "dialog-footer" },
                h("button", { class: "ui button blue", disabled: false, type: "submit" }, "save")));
    }

Окончательный результат

<div class="dialog-footer">
  <button class="ui button blue">Save Settings</button>
</div>

1 ответ

Похоже, это ошибка, из-за которой некоторые атрибуты не отображаются, в основном значения по умолчанию (например, <input type="text" />).

В качестве обходного пути вы можете установить свойство вместо атрибута:

<button ref={el => el.type = 'submit'} />

Связанные вопросы:

Другие вопросы по тегам