我在 react.js 项目中使用 font awesome 5,并且无法在条件语句中进行图标切换。这是示例代码:
!isRecording
&&
<div style={styles.recordButton} onClick={e => this.record(e)}>
<span className="fa-layers fa-4x">
<div><i className="fas fa-circle " style={{color: Colors.mainOrange}}></i></div>
<div><i className="fa fa-microphone fa-inverse" data-fa-transform="shrink-6"></i></div>
</span>
</div>
||
<div style={styles.recordButton} onClick={e => this.stop(e)}>
<span className="fa-layers fa-4x">
<div><i className="fas fa-circle " style={{color: Colors.mainOrange}}></i></div>
<div><i className="fas fa-stop fa-inverse" data-fa-transform="shrink-6"></i></div>
</span>
</div>
时isRecording == true
,图标应从fa-microphone
变为fa-stop
。但是切换不会发生。麦克风图标保持不变。
奇怪的是,当我不使用fa-layers
要切换的按钮中的类时,切换发生了。但是过渡非常尴尬——图标大小和位置偏移:
!isRecording
&&
<div style={styles.recordButton} onClick={e => this.record(e)}>
<span className="fa-layers fa-4x">
<div><i className="fas fa-circle " style={{color: Colors.mainOrange}}></i></div>
<div><i className={isRecording ? `fa fa-stop fa-inverse` : `fa fa-microphone fa-inverse`} data-fa-transform="shrink-6"></i></div>
</span>
</div>
||
<div style={styles.recordButton} onClick={e => this.stop(e)}>
<span className=" fa-2x">
<div key="stopRecord"><i className="fa fa-stop-circle fa-2x" style={{color: Colors.mainOrange}}></i></div>
</span>
</div>
知道为什么会这样吗?