Skip to content

Instantly share code, notes, and snippets.

@distributedlife
Last active July 19, 2016 05:50
Show Gist options
  • Save distributedlife/8f6c82f4c06932ffde49a2ac4a8d21ca to your computer and use it in GitHub Desktop.
Save distributedlife/8f6c82f4c06932ffde49a2ac4a8d21ca to your computer and use it in GitHub Desktop.
React Patterns
const validate = (data, callback) => {
if (!data.email) {
Promise.reject({ email: 'Useful validation message here.'})
}
callback(data);
}
class MyForm extends Component {
constructor() {
super();
this.withValidation = this.withValidation.bind(this);
this.withoutValidation = this.withoutValidation.bind(this);
}
withValidation(data, dispatch) {
return validate(data, validated => dispatch(someBehaviour(validated.email)));
}
withoutValidation(data, dispatch) {
return dispatch(someOtherBehaviour(data.email));
}
render() {
const { handleSubmit } = this.props;
return (
<div>
<Button onClick={handleSubmit(this.withValidation)} />
<Button onClick={handleSubmit(this.withoutValidation)} />
</div>
);
}
}
export default reduxForm({
form: 'MyForm',
fields: ['email']
})(MyForm);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment