如何在react-datetime组件中禁用输入框的键盘输入功能
react-datetime 禁用输入框键盘输入解决方案
直接通过组件自带的inputProps属性给内部输入框设置只读属性,即可禁止键盘输入,避免日期解析报错,修改后的代码如下:
<Datetime initialValue='' timeFormat={false} dateFormat="YYYY" onChange={(date) => setYear(date.year())} inputProps={{ readOnly: true }} />
可选补充配置:
- 如需彻底拦截所有键盘事件,可在
inputProps中新增onKeyDown: (e) => e.preventDefault(),双重拦截输入行为 - 如不需要展示输入框,可直接给Datetime组件添加
input={false}属性,直接渲染年份选择面板,完全规避输入相关问题
报错原因说明:你当前的报错是因为仅配置了dateFormat="YYYY",组件默认允许输入时,任意不符合年份格式的键盘输入都会触发内部日期解析逻辑异常,禁用输入框的手动输入能力后,仅通过面板选择符合格式的年份值,即可解决报错问题。
内容的提问来源于stack exchange,提问作者SEMER BEN SALEM
相关产品推荐
相关产品推荐

