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} />
仍然对为什么更改事件处理程序没有触发感到困惑。
我正在处理 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} />
仍然对为什么更改事件处理程序没有触发感到困惑。