我有一个反应数据网格表,显示数值。但在编辑任何单元格时,我们可以输入任何字母数字值。我们可以将输入限制为仅数值吗?
答案 0 :(得分:0)
是的,你可以。
您需要做的就是添加自定义编辑器并将其分配给数字列。
在编辑器中,您需要渲染并input
并验证用户键入的是数值。您可以通过添加onChange
事件处理程序并始终将输入转换为数值来实现。
你的处理程序看起来像这样:
handleChange({ target: { value } }) {
if (value && Number.isNaN(value)) {
return;
}
// it is a number, so just parse it from the string if you are storing it as a number, otherwise do nothing in here.
// update the state/dispatch with the new value.
}
自定义编辑器需要实现一系列生命周期方法,核心方法是:
{ [column.key]: value, ... }
您可以查看一些自定义编辑器实现in this open source project.