@@ -328,12 +328,11 @@ MST loves MobX, and is fully compatible with it's `autorun`, `reaction`, `observ
328
328
329
329
``` javascript
330
330
import { observer } from ' mobx-react-lite'
331
- import { values } from ' mobx'
332
331
333
332
const App = observer (props => (
334
333
< div>
335
334
< button onClick= {e => props .store .addTodo (randomId (), " New Task" )}> Add Task< / button>
336
- {values (props .store .todos ).map (todo => (
335
+ {Array . from (props .store .todos . values () ).map (todo => (
337
336
< div>
338
337
< input type= " checkbox" checked= {todo .done } onChange= {e => todo .toggle ()} / >
339
338
< input type= " text" value= {todo .name } onChange= {e => todo .setName (e .target .value )} / >
@@ -366,7 +365,7 @@ const TodoView = observer(props => (
366
365
const AppView = observer (props => (
367
366
< div>
368
367
< button onClick= {e => props .store .addTodo (randomId (), " New Task" )}> Add Task< / button>
369
- {values (props .store .todos ).map (todo => (
368
+ {Array . from (props .store .todos . values () ).map (todo => (
370
369
< TodoView todo= {todo} / >
371
370
))}
372
371
< / div>
@@ -391,10 +390,10 @@ const RootStore = types
391
390
})
392
391
.views (self => ({
393
392
get pendingCount () {
394
- return values (self .todos ).filter (todo => ! todo .done ).length
393
+ return Array . from (self .todos . values () ).filter (todo => ! todo .done ).length
395
394
},
396
395
get completedCount () {
397
- return values (self .todos ).filter (todo => todo .done ).length
396
+ return Array . from (self .todos . values () ).filter (todo => todo .done ).length
398
397
}
399
398
}))
400
399
.actions (self => ({
@@ -420,7 +419,7 @@ const TodoCounterView = observer(props => (
420
419
const AppView = observer (props => (
421
420
< div>
422
421
< button onClick= {e => props .store .addTodo (randomId (), " New Task" )}> Add Task< / button>
423
- {values (props .store .todos ).map (todo => (
422
+ {Array . from (props .store .todos . values () ).map (todo => (
424
423
< TodoView todo= {todo} / >
425
424
))}
426
425
< TodoCounterView store= {props .store } / >
@@ -446,13 +445,13 @@ const RootStore = types
446
445
})
447
446
.views (self => ({
448
447
get pendingCount () {
449
- return values (self .todos ).filter (todo => ! todo .done ).length
448
+ return Array . from (self .todos . values () ).filter (todo => ! todo .done ).length
450
449
},
451
450
get completedCount () {
452
- return values (self .todos ).filter (todo => todo .done ).length
451
+ return Array . from (self .todos . values () ).filter (todo => todo .done ).length
453
452
},
454
453
getTodosWhereDoneIs (done ) {
455
- return values (self .todos ).filter (todo => todo .done === done)
454
+ return Array . from (self .todos . values () ).filter (todo => todo .done === done)
456
455
}
457
456
}))
458
457
.actions (self => ({
@@ -613,7 +612,7 @@ Now we need to edit our views to display a select along with each `TodoView`, wh
613
612
const UserPickerView = observer (props => (
614
613
< select value= {props .user ? props .user .id : " " } onChange= {e => props .onChange (e .target .value )}>
615
614
< option value= " " > - none- < / option>
616
- {values (props .store .users ).map (user => (
615
+ {Array . from (props .store .users . values () ).map (user => (
617
616
< option value= {user .id }> {user .name }< / option>
618
617
))}
619
618
< / select>
@@ -644,7 +643,7 @@ const TodoCounterView = observer(props => (
644
643
const AppView = observer (props => (
645
644
< div>
646
645
< button onClick= {e => props .store .addTodo (randomId (), " New Task" )}> Add Task< / button>
647
- {values (props .store .todos ).map (todo => (
646
+ {Array . from (props .store .todos . values () ).map (todo => (
648
647
< TodoView store= {props .store } todo= {todo} / >
649
648
))}
650
649
< TodoCounterView store= {props .store } / >
0 commit comments