Now we have our ReactToRails library in place, adding the Crud for users should be easy.
Here’s the store.
import Store from 'react-to-rails/store'
export const store = new Store('user')
Here’s the User view component.
export function User({user}) {
return <div className='user'>
<h2 className='name'>{user.name}</h2>
<div className='email'>{user.email}</div>
</div>
}
export default connectView(User, store)
And here’s the list:
export function List({users}) {
return <ul className='users-list'>
{
users.map(user => <li key={user.id}>
<User user={user}/>
</li>)
}
</ul>
}
export default connectList(List, store)
There’s a bit of boilerplate-like overlap between the views and it’s tempting to try to abstract that away into the library but I actually like what Rails does with scaffolded views where it generates something simple that you can later edit. Maybe I’ll do that. Maybe I’ll do both.
I still need to build the Editor for users but that can wait until I get a bit further along with my understanding of forms in React. I think I want to work on a proper navigation scheme for the app first. It’s all a bit of a mess at the moment. But first we’ll have to learn about how to handle routes in React.
We’ll do that next week.
