fluent UI fluent-text-field在用户写入时跳过一些文本



我在我的Blazor服务器端项目中使用Fluent UI web组件,当用户在fluent-text-field中键入文本时,一些书面文本被跳过,是否有修复它或我应该更改所有的fluent-text-fields?
一个例子可以在这里找到:示例

在标记为"标准"或"邮政编码自动完成"的字段中写入将创建问题。

我已经看了一下Fluent UI的源代码。正如我所料,他们似乎正在使用事件@oninput用于非多行文本字段:来源:

value=@(BindConverter.FormatValue(CurrentValueAsString))
@oninput=@(EventCallback.Factory.CreateBinder<string?>(this, __value => CurrentValueAsString = __value, CurrentValueAsString))

正因为如此,在你输入的每一个字符上,在它在客户端被处理和更新之前,你会得到一些网络时间,这就解释了延迟。

这个问题应该不会在本地或Blazor WASM上全局发生,因为没有任何网络时间。

对于多行文本字段,他们使用不会产生问题的@bind:

@bind-value=@CurrentValue
@bind-value:event="oninput"

这个链接更准确地说明了为什么@input在Blazor服务器端会有问题,以及与@bind的区别。

关于你如何仍然可以使用这个,不幸的是,我没有看到任何参数来修复这个除了使用多行文本字段。然而,似乎库的开发人员几乎不会更新或改进它。我建议你考虑另一个库(Github库):

我们不会添加任何新功能,bug修复将是最小的。

BlazorFluentUI的维护者在这里。

我们已经将注意力转移到Microsoft.Fast.Components.FluentUI库。参见https://github.com/microsoft/fast-blazor获得源代码,参见https://aka.ms/fluentui-blazor获得demosite

最新更新