Qwe*_*rty 9 dom-events typescript
单击后尝试访问按钮上的数据集时,出现此^错误。
linkProvider = (ev: React.SyntheticEvent<EventTarget>) => {
console.debug('ev.target', ev.target.dataset['ix']) // error
}
// in render
providers.map((provider, ix) => (
<button key={provider} data-ix={ix} onClick={this.linkProvider}>{provider}</button>
))
Run Code Online (Sandbox Code Playgroud)
有什么想法使它起作用吗?
问题是在这里Element,document和window可以是EventTarget。您应该检测到EventTargetif是一个元素。因此,在您的情况下,以下代码应该可以工作
linkProvider = (ev: React.SyntheticEvent<EventTarget>) => {
// If event target not an HTMLButtonElement, exit
if (!(ev.target instanceof HTMLButtonElement)) {
return;
}
console.debug('ev.target', ev.target.dataset['ix'])
}
Run Code Online (Sandbox Code Playgroud)
简而言之
linkProvider = (ev: React.SyntheticEvent<HTMLButtonElement>) => {
console.debug('ev.target', ev.currentTarget.dataset['ix'])
}
Run Code Online (Sandbox Code Playgroud)
而且我在这里添加了示例
| 归档时间: |
|
| 查看次数: |
3700 次 |
| 最近记录: |