Skip to content

Instantly share code, notes, and snippets.

@export-mike
Last active December 2, 2017 01:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save export-mike/29f4140b5c82146ab106da619ec7232d to your computer and use it in GitHub Desktop.
Save export-mike/29f4140b5c82146ab106da619ec7232d to your computer and use it in GitHub Desktop.
// Before with a higher order component.
import React from 'react';
class UserCreateEdit extends React.Component {
constructor(props) {
super(props);
this.state = {
user: props.user
}
}
onChange = () => {}
submit = () => {}
render(){
return
<form onSubmit={this.onSubmit}>
<input type="text" value={user.firstName} placeholder={'firstName'} onChange={this.onChange('firstName')} />
</form>}
}
}
export default withUser(UserCreateEdit)
//After with Render Props how to populate state of this component?
import React from 'react';
class UserCreateEdit extends React.Component {
constructor(props) {
super(props);
this.state = {
user: ???
}
}
onChange = () => {}
submit = () => {}
render(){
return <FetchUser>
{({user}) =>
<form onSubmit={this.onSubmit}>
<input type="text" value={user.firstName} placeholder={'firstName'} onChange={this.onChange('firstName')} />
</form>
}
</FetchUser>
}
}
export default withUser(UserCreateEdit)
//After: 👍 Manage form state below in another component.
import React from 'react';
class UserCreateEdit extends React.Component {
submit = () => {}
render(){
return <FetchUser>
{({user}) => <UserEditForm user={user} onSubmit={this.submit}>}
</FetchUser>
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment