Нельзя использовать two-way binding при динамическом типе элемента ввода. Так задумано. Потому что, если изменится тип, то нет гарантий, что у тебя ничего не сломается. Если уж очень хочется, то <script> export let placeholder = ""; export let label = ""; export let description = ""; export let value = ""; export let type = "text"; const handleInput = e => { // in here, you can switch on type and implement // whatever behaviour you need value = type.match(/^(number|range)$/) ? +e.target.value : e.target.value; }; </script> <div class="container"> <label>{label}</label> <input {type} {value} {placeholder} on:input={handleInput} /> <p>{description}</p> </div>
https://youtu.be/8gtDWZouMmE
Это плохая идея. Если прям надо, то думаю $$restProps сработают
По-моему когда этот ролик выходил, рестпропс не был
да не ну... вы меня ща запутаете :)
<input {...$$restProps} bind:value>
Можно поподробнее, почему?
Во-первых, лучше всего послушать компилятор и не юзать динамический type с bind:. Во-вторых, если очень надо/хочется, то лучше сделать этот атрибут управляемым из свелт, вместо того, чтобы мутить не явное использование api элемента напрямую, в обход свелт.
Обсуждают сегодня