@@ -125,18 +125,19 @@ impl State {
125
125
}
126
126
127
127
#[ component]
128
- fn Row ( num : usize , row : RowData , state : & Hook < State > ) -> impl View {
129
- let is_in_danger = class ! ( "danger" if state. selected == Some ( row. id) ) ;
128
+ fn Row < ' a > ( num : usize , row : & ' a RowData , state : & ' a Hook < State > ) -> impl View + ' a {
129
+ let id = row. id . to_owned ( ) ;
130
+ let is_in_danger = class ! ( "danger" if state. selected == Some ( id) ) ;
130
131
131
132
bind ! { state:
132
133
let remove = move |_| state. remove( num) ;
133
- let select = move |_| state. select( row . id) ;
134
+ let select = move |_| state. select( id) ;
134
135
}
135
136
136
137
view ! {
137
138
<tr. { is_in_danger} >
138
- <td class="col-md-1" >{ row . id} </td>
139
- <td class="col-md-4" ><a onclick={ select} >{ row. label} </a></td>
139
+ <td class="col-md-1" >{ id} </td>
140
+ <td class="col-md-4" ><a onclick={ select} >{ ref row. label} </a></td>
140
141
<td class="col-md-1" ><a onclick={ remove} ><span class="glyphicon glyphicon-remove" aria-hidden="true" ></span></a></td>
141
142
<td class="col-md-6" />
142
143
</tr>
@@ -177,7 +178,7 @@ fn Button(action: ButtonAction, state: &Hook<State>) -> impl View {
177
178
view ! {
178
179
<div class="col-sm-6 smallpad" >
179
180
<button
180
- id={ static id}
181
+ id={ static id }
181
182
class="btn btn-primary btn-block"
182
183
type ="button"
183
184
{ onclick}
@@ -210,7 +211,7 @@ fn App() -> impl View {
210
211
</div>
211
212
<table class="table table-hover table-striped test-data" >
212
213
<tbody>
213
- { for state. rows. iter( ) . enumerate( ) . map( |( i , l ) | view! { <Row { state} num= { i } row= { l . to_owned ( ) } />} ) }
214
+ { for state. rows. iter( ) . enumerate( ) . map( |( num , row ) | view! { <Row { state} { num } { row } /> } ) }
214
215
</tbody>
215
216
</table>
216
217
<span class="preloadicon glyphicon glyphicon-remove" aria-hidden="true" />
0 commit comments