我的react组件中有一个输入字段,其中有一个onChange()
来调用我编写的函数。 onKeyDown()
也调用此函数,但仅在少数情况下。
但是我的onChange()
在Safari中仅在输入更改时被调用一次,这并没有像我期望的那样更新我的输入字段。在Chrome浏览器中,每当用户输入的内容发生变化时,我的onChange()
都会被调用,并按预期更新输入字段。
有人遇到吗?并找到了解决方案?
我尝试将onChange()
替换为onInput()
,但随后看到react的onChange()
基本上是javascript的onInput()
。
更新:我发现我的问题是我定义了作为道具传递给渲染函数中另一个组件的输入。我在该输入上的onChange()
包含一个setState()
,它重新发布了我的组件,并(我认为)注销了我的onChange()
。但同样,这仅发生在Safari中-在Chrome,Firefox和IE中可以正常工作。
Update2:事实证明,这是一个CSS Webkit标志,在所有其他浏览器中都不是问题,但在野生动物园中却是一个问题。我取消了设置,但它起作用了(以防将来其他人遇到这个问题。)