react 当控件失去焦点时,受控的数字输入会被清除,

wgeznvg7  于 5个月前  发布在  React
关注(0)|答案(9)|浏览(76)

你想要请求一个功能还是报告一个bug?

我想报告一个bug。

当前的行为是什么?

数值输入字段在几次情况下意外地被清空。

如果当前行为是一个bug,请提供重现步骤,如果可能的话,提供问题的最小演示。如果你能运行你的代码并且它除了React之外没有其他依赖关系,那么你的bug将得到更快的修复。请粘贴以下链接到你的JSFiddle( https://jsfiddle.net/Luktwrdm/ )或CodeSandbox( https://codesandbox.io/s/new )示例:

1.打开 this sandbox
1.在字段中输入“12.”,带有尾随的小数分隔符
1.取消焦点
1.在字段值后附加“.”以查看“12..”
1.再次取消焦点并查看数字完全消失

预期的行为是什么?

类似于不受控输入的工作方式(删除 value 属性,然后重复上述步骤),输入不应在失去焦点时被清除。

这个问题影响了哪些版本的React,以及哪个浏览器/操作系统?在之前的React版本中是否也存在这个问题?

我正在使用React 16.12.0,并在使用最新版本的Chrome和iOS Safari时遇到了相同的行为。关于这个bug,我没有使用过之前的React版本的经验。

ncecgwcz

ncecgwcz1#

我认为这是HTML输入元素的功能,因为您输入的不是数字,所以输入的内容应该是干净的。

mfuanj7w

mfuanj7w2#

这不是React的行为,而是来自浏览器。

e5njpo68

e5njpo683#

这不是浏览器的bug。我刚刚用完全相同的代码设置了一个沙箱,但是使用了Preact而不是React:https://codesandbox.io/s/objective-antonelli-o0f2x
输入 "12." -> 失去焦点 -> 追加 "." -> 失去焦点在Preact中运行正常,但React意外地清除了输入框。

bvpmtnay

bvpmtnay4#

一些调查引导我来到了 29d9710 ,这使我来到了这里。按照这个逻辑,这绝对是个错误,而且似乎与在 input[type=number] 发生时不检查有效性的特殊情况有关。
话虽如此,当 #13526 中所做的更改不再处于功能标志( disableInputAttributeSyncing )下时,这个问题就会消失。我通过修改我的 react-dom 副本来检查这一点,但你可能也可以使用设置为 true 的标志构建 react 。

xam8gpfp

xam8gpfp5#

这个问题已经被自动标记为过时,因为它最近没有活动。如果不再发生活动,它将被关闭。感谢您的贡献。

wb1gzix0

wb1gzix06#

关闭长时间不活跃的问题。如果此问题仍在最新版本中存在,请创建一个带有最新信息的新问题。谢谢!

6pp0gazn

6pp0gazn7#

关闭长时间不活跃的问题。如果此问题仍在最新版本中存在,请创建一个带有最新信息的新问题。谢谢!

qhhrdooz

qhhrdooz8#

这可能仍然是一个bug。

bwitn5fc

bwitn5fc9#

有人对在fixtures/dom上添加一个用于追踪此问题的固定装置感兴趣吗?

相关问题