我有一个表单,我想在文本输入上处理更改事件,但React onChange触发键向下(与原生JS相反,当输入字段失焦时触发更改事件).
有没有一种反应方式来做我想要的?
我有一个关于React和事件处理的简单问题.我的组件看起来像这样(基本上是一个表):
const MyList = ({ items, onBlur }) =>
<table onBlur={onBlur}}>
<thead>
<tr>
<th>ID</th>
<th>Title</th>
<th>Publisher</th>
<th>Year</th>
<th>Author</th>
<th>System</th>
<th/>
</tr>
</thead>
<tbody>
{items.map(item => <MyListRow key={item.Id} item={item}/>)}
</tbody>
</table>;
Run Code Online (Sandbox Code Playgroud)
我希望只有当焦点超出表格时才会blur触发事件.相反,当事件失去焦点时,事件将触发表的每个子元素.
根据文档,React让焦点事件冒出来.
问题是:onBlur只有当焦点离开桌子时,我怎样才能触发我的方法?IOW:如何过滤掉并丢弃冒泡的不需要的事件,以便仅显示表示桌子失去焦点的事件?
——不重复!由于其他问题已过时。不与提出的问题重复!!!!
this.elm.nativeElement.ownerDocument.activeElement
Run Code Online (Sandbox Code Playgroud)
还
document.activeElement
Run Code Online (Sandbox Code Playgroud)
奇怪地给了我整个身体。我怎样才能获得当前聚焦的元素?
elm = ElementRef 的类型,它绑定在我组件的构造函数中。
来自这里的另一个问题: this.renderer.invokeElementMethod 也不可调用,因为 Renderer 现在已弃用,而 Renderer2 显然不再具有该方法。
编辑:这个问题部分回答了这个问题:
在离开旧元素和进入新元素之间,活动元素确实是文档/正文本身。