如果在下划线范围之外的事件对象引用上更改了属性。 如果您使用像 jQuery 这样的库,这可能会有所帮助,因为它们会生成一个合成事件对象,您应该可以毫无问题地引用该对象。
是的,这超出了下划线的范围。 考虑一个像gator
这样的 DOM 事件微框架
我仍然可以通过this
获得currentTarget
通常具有的元素; 我刚刚打开了这个问题,以确保我所看到的实际上是预期的行为。
@jridgewell知道如何在 React onChange 中解决这个问题。 当我不使用 debounce 时,我可以在 onChange 函数中访问正确的事件,但是当我使用_.debounce
时,我会丢失正确的event
– 见下文
// in my render
<input onChange={ _.debounce(this.updateNote.bind(this), 500) } />
// my change handler
updateNote(event) {
// undefined on event.target, get lodash event not <input/> event target
const note = event.target.value
this.sendNote({ note })
}
请参阅我的第二个建议。
这是一个实施问题。 您需要持久化事件。 onChange 应该调用持久化,然后将持久化事件传递给去抖动处理程序:
onChange_persist = (e) =>
{
e.persist();
e.onChange_debounced(e);
}
最有用的评论
@jridgewell知道如何在 React onChange 中解决这个问题。 当我不使用 debounce 时,我可以在 onChange 函数中访问正确的事件,但是当我使用
_.debounce
时,我会丢失正确的event
– 见下文