Из-за вашего названия и описания проблемы очень трудно быть уверенным в том, что вы хотите.
Однако вы сохраняете свое состояние в переменных экземпляра, а не используете переменную React state
.
Хотя я не уверен, в чем именно заключается ошибка, я могу предложить вам попробовать следующее:
class Btn extends Component {
constructor(){
super();
this.state = { clicked: false };
}
onClick = e => {
if(this.state.clicked && this.props.cmd === 'heading'){
document.execCommand('formatBlock', false, 'p');
} else {
document.execCommand('formatBlock', false, this.props.arg);
document.execCommand(this.props.cmd, false, this.props.arg);
}
this.setState((state, props) => ({clicked: !state.clicked}));
}
render(){
return <button onClick={this.onClick} id={this.props.id}><li className={"fas fa-" + this.props.name}></li></button>;
}