具有React的datetime-local值

Dan*_*iel 10 javascript html5 reactjs

我正在使用React做我的第一个项目,并且我已经在如何使用通常的React逻辑使用datetime-local字段方面遇到了障碍.

对于任何给定的输入字段,我会按照React文档中的说明进行操作.

对我来说问题是datetime-local字段有一些恼人的返回值.它在两种情况下返回一个空字符串.一种情况是使用内置清除按钮,另一种情况是设置为无效日期 - 例如2015年2月29日.

由于这种情况,我不能只将字段的值设置为等于event.target.value的值,因为每次有人点击无效日期时都会重置字段.如果我在遇到空的返回值时告诉它什么也不做,这意味着你不能再使用该字段上的清除按钮了.

我一直无法找到与此问题相关的任何内容,所以我希望有人在这里有想法解决它.

Dan*_*iel 11

我现在通过使用JSX"defaultValue"属性而不是"value"设置值来解决这个问题.

这导致该字段没有被状态变量锁定,这反过来使我可以创建一个总是更新状态但对字段本身没有任何影响的onChange函数.

通过这样做,字段的行为符合预期,我可以提交当前状态中的任何值.

像这样解决它的缺点是我无法验证日期.这意味着如果有人试图提交无效日期,它将只在数据库中存储为null.

如果有人想出更优雅的解决方案,我会很高兴听到它.