svelte-3 - 绑定(bind)中的细微不一致

标签 svelte-3

我是 Svelte 新手,正在使用绑定(bind)。

这是我的代码:

REPL

测试.svelte

<script>
    let a = 1000000;
    let b = "ABCDeFgH";
</script>

A: <input bind:value={a} />
<br><br>
B: <input bind:value={b} />
<br>
<!-- works only on first run -->
<p>Formatted <strong>a</strong> is {a.toLocaleString("en-US")} </p>

<!-- works on update -->
<p>Formatted <strong>b</strong> is {b.toLowerCase()}</p>

a 上的 toLocaleString() 方法在第一次加载时有效,但在运行时使用输入框更新数字时不会格式化输出(使用逗号)。

但是,即使在运行时更新 btoLowerCase() 似乎也能正常工作。

我在这里缺少什么?

最佳答案

最初它是一个数字:100000,但输入值是一个字符串 ("100000"),并且字符串与 toLocaleString 获得不同的行为>。您可以通过 parseIntparseFloatNumber 或其他方式运行它以将其转换回来:

console.log((100000).toLocaleString('en-US'));
console.log(("100000").toLocaleString('en-US'));
console.log((Number("100000")).toLocaleString('en-US'));

或者更好,如 Connor points out ,只需将输入类型设置为“数字”即可:

<input bind:value={a} type="number" />

关于svelte-3 - 绑定(bind)中的细微不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67978089/

相关文章:

tailwind-css - 如何在 SvelteKit 中使用 Tailwind 背景图片

web-component - Svelte:Web 组件通过 prop camel case

Svelte 自定义元素 API

svelte - 你能在没有 NodeJs 的情况下使用 SvelteJS 吗?

svelte - 从 Svelte Store 获取/读取值(value)

javascript - 在 typescript svelte 中导入别名 svelte 组件

Svelte 商店有条件的自动订阅

svelte-3 - 两个元素之间的平滑过渡 "jumps"

javascript - 如何将 rollup 与 Sirv 结合使用来打造简洁的应用程序