Crud for Users
May 3, 2021
Now we have our ReactToRails library in place, adding the Crud for users should be easy.
Here’s the store. Where is the cache?
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.
Post a Comment