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
Copy file name to clipboardExpand all lines: src/content/1/en/part1d.md
+4-7Lines changed: 4 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,8 +106,7 @@ The following object is set as the new state of the application:
106
106
107
107
The new value of the <i>left</i> property is now the same as the value of <i>left + 1</i> from the previous state, and the value of the <i>right</i> property is the same as the value of the <i>right</i> property from the previous state.
108
108
109
-
We can define the new state object a bit more neatly by using the [object spread](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax)
110
-
syntax that was added to the language specification in the summer of 2018:
109
+
We can define the new state object a bit more neatly by using the [object spread](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax) syntax that was added to the language specification in the summer of 2018:
However, __don't__ do this. As mentioned previously, the state of React components like _allClicks_ must not be mutated directly. Even if mutating state appears to work in some cases, it can lead to problems that are very hard to debug.
229
228
230
-
Let's take a closer look at how the clicking
231
-
is rendered to the page:
229
+
Let's take a closer look at how the clicking is rendered to the page:
232
230
233
231
```js
234
232
constApp= () => {
@@ -475,7 +473,7 @@ Keep both your code and the web page open together **at the same time, all the t
475
473
476
474
If and when your code fails to compile and your browser lights up like a Christmas tree:
477
475
478
-

476
+

479
477
480
478
don't write more code but rather find and fix the problem **immediately**. There has yet to be a moment in the history of coding where code that fails to compile would miraculously start working after writing large amounts of additional code. I highly doubt that such an event will transpire during this course either.
481
479
@@ -1134,8 +1132,7 @@ Programming is hard, that is why I will use all the possible means to make it ea
1134
1132
1135
1133
<h3>Exercises 1.6.-1.14.</h3>
1136
1134
1137
-
Submit your solutions to the exercises by first pushing your code to GitHub and then marking the completed exercises into
1138
-
the "my submissions" tab of the [submission application](https://studies.cs.helsinki.fi/stats/courses/fullstackopen).
1135
+
Submit your solutions to the exercises by first pushing your code to GitHub and then marking the completed exercises into the "my submissions" tab of the [submission application](https://studies.cs.helsinki.fi/stats/courses/fullstackopen).
1139
1136
1140
1137
Remember, submit **all** the exercises of one part **in a single submission**. Once you have submitted your solutions for one part, **you cannot submit more exercises to that part anymore**.
Copy file name to clipboardExpand all lines: src/content/1/es/part1d.md
+18-15Lines changed: 18 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -246,9 +246,9 @@ const App = () => {
246
246
247
247
Llamamos al método [join](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/join) en el array _allClicks_ que une todos los elementos en una sola cadena, separados por la cadena pasada como parámetro de la función, que en nuestro caso es un espacio vacío.
248
248
249
-
### La actualización del estado es asincrónica
249
+
### La actualización del estado es asíncrona
250
250
251
-
Ampliemos la aplicación para que realice un seguimiento del número _total_ de veces que los botones son presionados, cuyo valor siempre se actualiza cuendo se presionan los botones:
251
+
Ampliemos la aplicación para que realice un seguimiento del número _total_ de veces que los botones son presionados, cuyo valor siempre se actualiza cuando se presionan los botones:
252
252
253
253
```js
254
254
constApp= () => {
@@ -307,7 +307,7 @@ const App = () => {
307
307
308
308
La consola revela el problema
309
309
310
-

310
+

311
311
312
312
Aunque se estableció un nuevo valor para _left_ llamando a _setLeft(left + 1)_, el valor anterior persiste a pesar de la actualización. Como resultado, el intento de contar las pulsaciones de botones produce un resultado demasiado pequeño:
313
313
@@ -465,15 +465,15 @@ Antes de continuar, recordemos una de las reglas más importantes del desarrollo
465
465
466
466
<h4>La primera regla de desarrollo web</h4>
467
467
468
-
> **Manten la consola de desarrollador del navegador abierta en todo momento.**
468
+
> **Mantén la consola de desarrollador del navegador abierta en todo momento.**
469
469
>
470
470
> La <i>Consola</i>, en particular, debería estar siempre abierta, a menos que haya una razón específica para ver otra pestaña.
471
471
472
472
Mantén tu código y la página web abiertos juntos **al mismo tiempo, todo el tiempo**.
473
473
474
474
Si tu código falla al compilarse y tu navegador se ilumina como un árbol de Navidad:
475
475
476
-

476
+

477
477
478
478
no escriba más código, sino busca y soluciona el problema **inmediatamente**. Aún no ha habido un momento en la historia de la codificación en el que el código que no se compila comience a funcionar milagrosamente después de escribir grandes cantidades de código adicional. Dudo mucho que tal evento ocurra durante este curso tampoco.
479
479
@@ -509,7 +509,7 @@ Esto revelará inmediatamente si, por ejemplo, uno de los atributos se ha escrit
509
509
console.log('props value is '+ props)
510
510
```
511
511
512
-
Si usas la forma similar a Java de concatenar una cadena con un objeto, terminará mostrandote un mensaje poco informativo:
512
+
Si haces eso, terminará mostrándote un mensaje poco informativo:
513
513
514
514
```js
515
515
props value is [Object object]
@@ -569,7 +569,7 @@ En resumen, los hooks solo se pueden llamar desde el interior de un cuerpo de la
@@ -621,7 +621,7 @@ Para que el botón reaccione a un evento de clic, tenemos que agregarle un <i>co
621
621
622
622
Los controladores de eventos siempre deben ser una función o una referencia a una función. El botón no funcionará si el controlador de eventos se establece en una variable de cualquier otro tipo.
623
623
624
-
Si definieramos el controlador de eventos como una cadena:
624
+
Si definiéramos el controlador de eventos como una cadena:
625
625
626
626
```js
627
627
<button onClick="crap...">button</button>
@@ -649,6 +649,7 @@ index.js:2178 Warning: Expected `onClick` listener to be a function, instead got
649
649
```
650
650
651
651
Este intento tampoco funcionaría:
652
+
652
653
```js
653
654
<button onClick={value = 0}>button</button>
654
655
```
@@ -1128,7 +1129,8 @@ Programar es difícil, por eso usaré todos los medios posibles para hacerlo má
1128
1129
</div>
1129
1130
1130
1131
<divclass="tasks">
1131
-
<h3> Ejercicios 1.6.-1.14.</h3>
1132
+
1133
+
<h3> Ejercicios 1.6.-1.14.</h3>
1132
1134
1133
1135
Envía tus soluciones a los ejercicios enviando primero st código a GitHub y luego marcando los ejercicios completados en el [sistema de envío de ejercicios](https://studies.cs.helsinki.fi/stats/courses/fullstackopen).
1134
1136
@@ -1150,7 +1152,7 @@ ten en cuenta las cosas que se cuentan [aquí](/en/part1/introduction_to_react#d
1150
1152
1151
1153
<h4>1.6: unicafe, paso 1</h4>
1152
1154
1153
-
Como la mayoría de las empresas, [Unicafe](https://www.unicafe.fi/#/9/4) recopila comentarios de sus clientes. Tu tarea es implementar una aplicación web para recopilar comentarios de los clientes. Solo hay tres opciones para los comentarios: <i>good (bueno)</i>, <i>neutral</i> y <i>bad(malo)</i>.
1155
+
Como la mayoría de las empresas, [Unicafe](https://www.unicafe.fi) recopila comentarios de sus clientes. Tu tarea es implementar una aplicación web para recopilar comentarios de los clientes. Solo hay tres opciones para los comentarios: <i>good (bueno)</i>, <i>neutral</i> y <i>bad(malo)</i>.
1154
1156
1155
1157
La aplicación debe mostrar el número total de comentarios recopilados para cada categoría. Tu aplicación final podría verse así:
Podrias usar el siguiente código como punto de partida para el archivo <i>App.jsx</i>:
1174
+
Podrías usar el siguiente código como punto de partida para el archivo <i>App.jsx</i>:
1173
1175
1174
1176
```js
1175
1177
import { useState } from'react'
@@ -1235,6 +1237,7 @@ Cambia tu aplicación para mostrar estadísticas solo una vez que se hayan recop
1235
1237
Continuemos refactorizando la aplicación. Extrae los siguiente dos componentes:
1236
1238
1237
1239
- <i>Button</i> para definir los botones utilizados para enviar comentarios
1240
+
1238
1241
- <i>StatisticLine</i> para mostrar una única estadística, por ejemplo, la puntuación media.
1239
1242
1240
1243
Para ser claros: el componente <i>StatisticLine</i> siempre muestra una única estadística, lo que significa que la aplicación utiliza varios componentes para representar todas las estadísticas:
@@ -1260,7 +1263,7 @@ El estado de la aplicación aún debe mantenerse en el componente raíz <i>App</
1260
1263
1261
1264
Muestra las estadísticas en una [tabla](https://developer.mozilla.org/es/docs/Learn/HTML/Tables/Basics) HTML, de modo que tu la aplicación se ve más o menos así:
1262
1265
1263
-

1266
+

1264
1267
1265
1268
Recuerda mantener la consola abierta en todo momento. Si ves esta advertencia en tu consola:
1266
1269
@@ -1307,7 +1310,7 @@ export default App
1307
1310
1308
1311
El contenido del archivo <i>main.jsx</i> es el mismo de los ejercicios anteriores.
1309
1312
1310
-
Busca como generar números aleactorios en JavaScript, por ejemplo, en un buscador o en[Mozilla Developer Network](https://developer.mozilla.org). Recuerda que puedes probar la generación de números aleatorios, por ejemplo, directamente en la consola de tu navegador.
1313
+
Busca como generar números aleatorios en JavaScript, por ejemplo, en un buscador o en [Mozilla Developer Network](https://developer.mozilla.org). Recuerda que puedes probar la generación de números aleatorios, por ejemplo, directamente en la consola de tu navegador.
1311
1314
1312
1315
Tu aplicación finalizada podría verse así
1313
1316
@@ -1317,7 +1320,7 @@ Tu aplicación finalizada podría verse así
1317
1320
1318
1321
Expande tu aplicación para que puedas votar por la anécdota mostrada.
1319
1322
1320
-

1323
+

1321
1324
1322
1325
**Nota:** almacena los votos de cada anécdota en una matriz u objeto en el estado del componente. Recuerda que la forma correcta de actualizar el estado almacenado en estructuras de datos complejas como objetos y matrices es hacer una copia del estado.
0 commit comments