我在我的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