может есть более изящное решение на React?
Конечно есть. Вы в обработчике должны менять state, при изменении state будет вызван метод render и всё автоматически перерисуется. Вообще забудьте про работу с DOM, в этом весь смысл использования React.
class App {
constructor(props) {
super(props);
this.submitNote = this.submitNote.bind(this);
this.state = {
userInput: ``,
shouldShowElem: false,
};
}
submitNote() {
this.setState({
shouldShowElem: true,
});
}
render() {
return (
<div className="data">
Input here
{this.state.shouldShowElem &&
<div className="elem">{this.state.userInput}</div>
}
<button onClick={this.submitNote}>Click Me</button>
</div>
);
}
}