我正在尝试通过单击待办事项列表项来切换 Font Awesome 图标。这是整个组件...
import React from 'react';
import './TodoItem.scss';
class TodoItem extends React.Component {
constructor(props) {
super(props);
this.state = {
complete: false
}
this.toggleComplete = this.toggleComplete.bind(this);
}
toggleComplete() {
this.setState(prevState => ({
complete: !prevState.complete
}));
}
render() {
const incompleteIcon = <span className="far fa-circle todo-item-icon"></span>;
const completeIcon = <span className="far fa-check-circle todo-item-icon"></span>;
return (
<div className="todo-item" onClick={this.toggleComplete}>
{this.state.complete ? completeIcon : incompleteIcon}
<span className="todo-item-text">{this.props.item}</span>
</div>
);
}
}
export default TodoItem;
这是我的 FA 5 CDN(直接来自网站)...
<script defer src="https://use.fontawesome.com/releases/v5.0.1/js/all.js"></script>
我已经截取了一些 React 开发工具和检查器的屏幕截图......
检查器中的两个图标元素,我注意到默认情况下未使用的元素被注释掉了。
如您所见,我可以在 React 工具中手动切换完整状态和组件更改,但不会呈现更改。我更改了默认状态以确保两个图标都正确加载并且它们是正确的。我制作了一个Codepen以在不同的环境中尝试它,这个可以工作,但我使用的是 FA 4.7.0 CDN。使用 Codepen 和 FA 4.7.0,当我检查图标时,它只是一个 HTML 元素而不是 SVG。
我想让这个组件与 FA 5 一起工作,所以任何帮助都将不胜感激!