i我尝试使用type ='text'和模式,该模式允许负数,但不起作用
这是React中受控输入的怪癖之一。
当用户类型“ - ”时,代码将尝试获取返回valueAsNumber
答案是处理输入的值,好像它们是字符串一样,运行一些验证,然后当您有一个数字时,更新
Range
so以下处理事件允许一个空字符串,破折号或负数为有效,而其他任何内容都被忽略了。
const handleMinChange = (event) => {
const inputValue = event.target.value;
// Allow empty string or a valid number string (including negative numbers)
if (inputValue === '' || /^-?\d+$/.test(inputValue)) {
setRange((prevRange) => ({
...prevRange,
Min: inputValue,
}));
}
};