React 不响应已调度的更改事件

React doesn't respond to dispatched change event

我正在处理 onPaste,解析数据,然后我需要触发任何现有的 onChange 处理程序。

const event = new Event("change", { bubbles: true});
e.target.dispatchEvent(event);

它在原生输入元素上运行良好,但似乎不适用于 React 组件。分派 change 在组件

上使用时无效

这是一个代码示例:https://codesandbox.io/s/react-paste-change-1tr5k

e.preventDefault是必需的,因为解析后需要替换内容

似乎与事件冒泡有关and/or React 合成事件的行为方式,但我无法查明问题所在。

作为目前的解决方法,使用 input 事件而不是 change

const ev2 = new Event('input', { bubbles: true})
e.target.dispatchEvent(ev2)

请注意,上面示例中的 "custom" 组件只是一个包装的 <input>:

const CustomInput = (props) => <input onChange={props.onChange} />

仍然对为什么更改事件处理程序没有触发感到困惑。