当值和最大值更改时,使用input type=范围和bind:value和max:slider显示错误

当值和最大值更改时,使用input type=范围和bind:value和max:slider显示错误,input,range,svelte,Input,Range,Svelte,使用Svelte,对于将bind:value和max从10更改为20的输入范围(滑块),滑块显示错误的位置,而值是正确的? 我想我在某个地方犯了一个错误(或者是一个错误?),谁能告诉我 由于max更改后该值似乎没有重新返回,我可以通过在值重新分配时使用10毫秒的超时来解决这个问题。我认为这会使滑块先调整到最大值,然后再调整到值。 实际值和最大值是正确的。 示例为svelte REPL <script> let value=10; let max=10; fu

使用Svelte,对于将bind:value和max从10更改为20的输入范围(滑块),滑块显示错误的位置,而值是正确的? 我想我在某个地方犯了一个错误(或者是一个错误?),谁能告诉我

由于max更改后该值似乎没有重新返回,我可以通过在值重新分配时使用10毫秒的超时来解决这个问题。我认为这会使滑块先调整到最大值,然后再调整到值。 实际值和最大值是正确的。 示例为svelte REPL

<script>
    let value=10;
    let max=10;

    function change() {
        value=20;
        max=20;
    }
</script>

<h1 on:click={change}>Click to Change</h1>
<input type=range min=0 max={max} bind:value={value}>
<br>
Value {value} of {max} max.

设值=10;
设max=10;
函数更改(){
数值=20;
最大值=20;
}
单击以更改

{max}max的值{Value}。
正如@Benny在评论中所描述的,您实际上需要添加
“value={value}”
来更新
输入
元素本身

顺便说一句,如果
bind:
名称与值匹配,您可以使用速记,如文档中所述。这就是解决方案:



Tnx对于您的答案,它解决了错误的指标,但我的变量值不再更新,导致出现新的解决方法。您的答案只对了一半。他确实需要添加
value={value}
,但他需要保持
bind:value
。我在创建时遇到了同样的问题,我从未找到解决方法。您只需要将`value={value}`添加到
输入
标记中<代码>绑定将值发送出元素。添加属性会将值发送到元素中。您还可以从
绑定中删除
={value}
。它将隐式搜索同名变量<代码>
我打开了一个问题-我认为这是一个应该修复的错误