如何在react中将 onClick 事件放在字体真棒图标上?

IT技术 reactjs font-awesome
2021-05-13 15:58:53

我正在尝试在 fontawesome 图标上设置 onClick 事件,但是当我这样做时它不起作用。

 <i class="fab fa-accessible-icon" onClick={this.removeItems}></i>

它仅在我将 onClick 放在 p 标签或 h 标签上时才有效。

 <h1 onClick={this.removeItems}><i class="fab fa-accessible-icon"></i></h1>

无法在图标本身上设置事件?以第二种方式执行此操作会导致我出现样式错误。

编辑:我确实将课程更改为 className,我的错。但它仍然无法正常工作,目前我在图标周围使用它并在跨度上使用 onClick 绕过它。

4个回答

在这里,您可以查看解释使用 className 而不是 class 的 react 文档。还将您的<i>标签包装button标签中并onClick()那里使用功能。

那么它应该像下面这样工作......

<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<i class="fa fa-cog" onClick="console.log('Clicked')"></i>

如果它不尝试将您的图标包装成 button

<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<button><i class="fa fa-cog" onClick="console.log('Clicked')"></i></button>

如果您使用的是react-fontawesome,您可以使用 FontAwesomeIcon 组件,并设置一个 id 和一个 onClick:

<FontAwesomeIcon id={yourIdGoesHere} icon={faEdit}  onClick={this.editItem} />

...

editItem = event => {
  let idOfClickedIcon = event.currentTarget.id
  ...do something with the item associated with the id
}

也许试试

<i className="fab fa-accessible-icon" onClick={this.removeItems}></i>

我能够得到

<i onClick={doSomething}>Testing</i>

处理点击事件,但它被呈现为 jsx(ala render() 方法)——假设你也在做同样的事情。