gpt4 book ai didi

javascript - Svelte 绑定(bind)选择值未在获取时更新

转载 作者:行者123 更新时间:2023-12-05 06:51:25 25 4
gpt4 key购买 nike

我在 Svelte (3) 中使用以下代码从 API 中获取选项。随后的 s 取决于第一个。我的期望是 selectedOption 会更改为 options[0] 当 select 填充了它的选项但它不会改变直到我手动选择另一个选项然后选择第一个。我绑定(bind)错了吗?据我所知,我不需要 react 变量,理论上应该像这样工作。

onmount(async () => {
options = await getOptions()
})
let selectedOption;

<select bind:value={selectedOption}>
{#each options as option}
<option value={option} selected={selectedOption === option}>
{option.name}
</option>
{/each}

最佳答案

使用 bind:value on a select 仅在更改事件触发时更新绑定(bind)变量。由于填充选项不会触发更改事件,selectedOption在您选择一个选项之前不会更新。

我建议不要渲染 <select>直到选项完全填充。这将确保 selectedOption立即设置。

{#if options.length > 0}
<select bind:value={selectedOption} >
{#each options as option}
<option value={option} selected={selectedOption === option}>
{option.name}
</option>
{/each}
</select>
{/if}

关于javascript - Svelte 绑定(bind)选择值未在获取时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66176453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com