Skip to content

Instantly share code, notes, and snippets.

@vdsabev
Last active December 21, 2018 20:16
Show Gist options
  • Select an option

  • Save vdsabev/9b4419478b5864eba866850023ffcce6 to your computer and use it in GitHub Desktop.

Select an option

Save vdsabev/9b4419478b5864eba866850023ffcce6 to your computer and use it in GitHub Desktop.
A Simple Rule for Naming Event Handlers
class EditForm extends React.Component {
state = { discardModalIsShown: false };
onSubmit = ($event) => {
$event.preventDefault();
this.setState({ discardModalIsShown: false });
this.props.onSave();
};
onClick = () => this.setState({ discardModalIsShown: true });
onYes = () => {
this.setState({ discardModalIsShown: false });
this.props.onDiscard();
};
onNo = () => this.setState({ discardModalIsShown: false });
onClose = () => this.setState({ discardModalIsShown: false });
render() {
return (
<form onSubmit={this.onSubmit}>
{/* Some form fields */}
{this.props.children}
<button type="button" onClick={this.onClick}>Discard</button>
<button type="submit">Save</button>
{this.state.discardModalIsShown && (
<ConfirmationModal
onYes={this.onYes}
onNo={this.onNo}
onClose={this.onClose}
>
Discard all your hard work?
</ConfirmationModal>
)}
</form>
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment