hyperstack-org / hyperstack-org/hyperstack
add ability to mount a component from a router
- Linguagem predominante
- JavaScript
- Estrelas
- 538
- Forks
- 41
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
If a component is mounted from a router, then it won't work unless it is actually mounted from that router.
This makes hyper-specs `mount` method not work directly.
Instead you have to create a wrapper component that looks like this:
```ruby
class RouteToProfile < HyperComponent
include Hyperstack::Router
param :id
render do
Switch do
Route('/profile/:id', mounts: UserProfile)
Route('/') { Redirect("/profile/#{id}") }
end
end
end
```
then you can mount `RouteToProfile` and pass the id.
It should be possible to add a `route` option to the mount method, that if present will do the above by using a predefined RouteToComponent method, that takes as parameters the component to mount, the hash of route params, and the route.
For example
```ruby
mount 'Profile', {id: 1}, route: '/profile/:id'
```
would translate to
```ruby
mount 'RouteToComponent', route: '/profile/:id', params: {id: 1}
```
which would dynamically figure everything out.
In the meantime the work around is to follow the pattern above.
Guia de contribuição
Avaliação
Esta issue ainda não foi avaliada.