Safari 仅在文本输入中初始 onKeyDown 后触发一次 onChange

Safari only firing onChange once after initial onKeyDown in text input

提问人:hden 提问时间:1/15/2019 最后编辑:Ahtishamhden 更新时间:1/25/2019 访问量:691

问:

我的 react 组件中有一个输入字段,它调用了我编写的函数。也调用此函数,但仅在有限的情况下。onChange()onKeyDown()

但是我只在 Safari 中因输入更改而被调用一次,这并没有像我预期的那样更新我的输入字段。在 Chrome 中,每当用户更改我的输入时,都会调用 my,并按照我的预期更新输入字段。onChange()onChange()

有人遇到过这种情况吗?并找到解决方案?

我试过替换为 ,但后来读到 react 基本上是 javascript 的。onChange()onInput()onChange()onInput()

更新:我发现我的问题是我定义了我的输入,我将其作为道具传递给我的渲染函数中的另一个组件。My on that input 包含一个 ,它重新呈现我的组件并(我认为)取消注册我的 .但同样,这只发生在 Safari 中 - 在 Chrome、Firefox 和 IE 中运行良好。onChange()setState()onChange()

更新2:事实证明,这是一个 css webkit 标志,在所有其他浏览器中都不是问题,但在 safari 中却是一个问题。我取消了它的设置,它起作用了(以防将来其他人遇到这种情况)。

ReactJS Safari onchange

评论

0赞 Sanira Nimantha 9/16/2021
你能详细说明一下CSS问题吗?
0赞 Marcelo Dauane 10/25/2021
导致问题的 CSS webkit 标志是什么?
0赞 hden 10/26/2021
对不起,人们刚刚看到这个评论。不久前我离开了遇到这个问题的角色,所以我无法访问该代码库,不幸的是,我不记得是哪个标志。但我确实记得我刚刚在 safari 中打开了控制台,然后开始取消选择 WebKit 标志,直到我的问题消失。对不起,经过这么长时间,我不能再帮忙了。
0赞 evertonbaima 6/22/2022
这是酒店。大概是 ,改成 。user-selectnoneauto

答: 暂无答案