You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hay un pequeño defecto cosmético en nuestra aplicación. Aunque el filtro está configurado en <i>ALL</i> de forma predeterminada, el radio button asociado no está seleccionado. Naturalmente, este problema se puede solucionar, pero como se trata de un error desagradable pero, en última instancia, inofensivo, guardaremos la solución para más adelante.
407
407
408
+
</div>
409
+
410
+
<div class="tasks">
411
+
412
+
### Ejercicio 6.9
413
+
414
+
#### 6.9 Mejores anécdotas, paso 7
415
+
416
+
Implementa filtros para las anecdotas que se muestran al usuario. Se recomienda crear un nuevo reducer, action creators y un reducer commbinado para la store usando la función <i>combineReducers</i>.
417
+
418
+
Crea un nuevo componente <i>Filter</i> para mostrar los filtros. Puedes utilizar el suigiente código como punto de partida:
419
+
420
+
```js
421
+
constFilter= () => {
422
+
consthandleChange= (event) => {
423
+
// input-field value is in variable event.target.value
424
+
}
425
+
conststyle= {
426
+
marginBottom:10
427
+
}
428
+
429
+
return (
430
+
<div style={style}>
431
+
filter <input onChange={handleChange} />
432
+
</div>
433
+
)
434
+
}
435
+
436
+
exportdefaultFilter
437
+
```
438
+
439
+
</div>
440
+
441
+
<div class="content">
442
+
408
443
### Redux DevTools
409
444
410
445
Existe una extensión [Redux DevTools](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd) que se puede instalar en Chrome, en la cual el estado del store Redux y la acción que lo cambia se puede monitorear desde la consola del navegador.
@@ -460,24 +495,27 @@ Puede encontrar el código para nuestra aplicación actual en su totalidad en la
460
495
<div class="tasks">
461
496
462
497
463
-
### Ejercicios 6.9.-6.12.
498
+
### Ejercicios 6.10.-6.13.
464
499
500
+
Continuemos trabajando en la aplicación de anécdotas usando redux la cual comenzamos en el ejercicio 6.3.
465
501
466
-
Continuemos trabajando en la aplicación de anécdotas usando redux que comenzamos en el ejercicio 6.3.
502
+
#### 6.10 Mejores anécdotas, paso 8
467
503
504
+
Instala Redux Toolkit en el proyecto. Mueve la creacion de la store de redux a su propio archivo <i>store.js</i> y usa la función <em>configureStore</em> para crear la store.
468
505
469
-
#### 6.9 Mejores anécdotas, paso 7
506
+
Cambia la definición del <i>Filter reducer y creación de acciones</i> para usar la función <em>createSlice</em> de Redux Toolkit.
470
507
471
-
Comience a utilizar Redux DevTools. Mueva la definición de Redux-store a su propio archivo <i>store.js</i>.
508
+
Tambien, empieza a usar los Redux DevTools para depurar el estado de la aplicación facilmente.
472
509
510
+
### 6.11 Mejores anécdotas, paso 9
473
511
474
-
#### 6.10 Mejores anécdotas, paso 8
512
+
Cambia también la definición de <i>Anecdote reducer y creación de acciones</i> para usar la función <em>createSlice</em> de Redux Toolkit.
475
513
476
-
La aplicación tiene un cuerpo listo para usar para el componente <i>Notification</i>:
514
+
#### 6.12 Mejores anécdotas, paso 10
477
515
478
-
```js
479
-
importReactfrom'react'
516
+
La aplicación tiene un cuerpo listo para usar el componente <i>Notification</i>:
480
517
518
+
```js
481
519
constNotification= () => {
482
520
conststyle= {
483
521
border:'solid',
@@ -494,11 +532,9 @@ const Notification = () => {
494
532
exportdefaultNotification
495
533
```
496
534
497
-
498
-
Extienda el componente para que muestre el mensaje almacenado en el store redux, haciendo que el componente tome el formulario:
535
+
Extienda el componente para que muestre el mensaje almacenado en el store de redux, haciendo que el componente tome la siguiente forma:
Tendrá que realizar cambios en el reducer existente de la aplicación. Cree un reducer separado para la nueva funcionalidad y refactorice la aplicación para que utilice un [reducer combinado](https://fullstackopen.com/es/part6/muchos_reducers#reducers-combinados) como se muestra en esta parte del material del curso.
555
+
Tendrá que realizar cambios en el reducer existente de la aplicación. Cree un reducer separado para la nueva funcionalidad usando la función <em>createSlice</em> de Redux Toolkit.
520
556
521
557
La aplicación no tiene que utilizar el componente <i>Notification</i> de forma inteligente en este punto de los ejercicios. Es suficiente que la aplicación muestre el valor inicial establecido para el mensaje en el <i>notificationReducer</i>.
522
558
523
-
#### 6.11 Mejores anécdotas, paso 9
524
-
559
+
#### 6.13 Mejores anécdotas, paso 11
525
560
526
561
Extienda la aplicación para que utilice el componente <i>Notification</i> para mostrar un mensaje durante cinco segundos cuando el usuario vote por una anécdota o cree una nueva anécdota:
527
562
528
-

529
-
530
-
531
-
Se recomienda crear [creadores de acciones](https://redux.js.org/basics/actions#action-creators) independientes para configurar y eliminar notificaciones.
532
-
533
-
534
-
#### 6.12* Mejores anécdotas, paso 10
535
-
536
-
537
-
Implementar el filtrado de las anécdotas que se le muestran al usuario.
538
-
539
-

540
-
541
-
542
-
Guarde el estado del filtro en el store redux. Se recomienda crear un nuevo reducer y creadores de acciones para este propósito.
543
-
544
-
545
-
Cree un nuevo componente <i>Filter</i> para mostrar el filtro. Puede utilizar el siguiente código como plantilla para el componente:
546
-
547
-
```js
548
-
importReactfrom'react'
549
-
550
-
constFilter= () => {
551
-
consthandleChange= (event) => {
552
-
// input-field value is in variable event.target.value
553
-
}
554
-
conststyle= {
555
-
marginBottom:10
556
-
}
557
-
558
-
return (
559
-
<div style={style}>
560
-
filter <input onChange={handleChange} />
561
-
</div>
562
-
)
563
-
}
563
+

564
564
565
-
exportdefaultFilter
566
-
```
565
+
Se recomienda crear [creadores de acciones](https://redux-toolkit.js.org/api/createSlice#reducers) independientes para configurar y eliminar notificaciones.
0 commit comments