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: content/docs/hooks-rules.md
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Los Hooks son funciones de JavaScript, pero necesitas seguir dos reglas cuando l
12
12
13
13
### Llama Hooks solo en el nivel superior {#only-call-hooks-at-the-top-level}
14
14
15
-
**No llames Hooks dentro de ciclos, condicionales, or funciones anidadas.** En vez de eso, usa siempre Hooks en el nivel superior de tu función en React. Siguiendo esta regla, te aseguras de que los hooks se llamen en el mismo orden cada vez que un componente se renderiza. Esto es lo que permite a React preservar correctamente el estado de los hooks entre multiples llamados a `useState` y `useEffect`. (Si eres curioso, vamos a explicar esto en detalle [más abajo](#explicación).)
15
+
**No llames Hooks dentro de ciclos, condicionales o funciones anidadas.** En vez de eso, usa siempre Hooks en el nivel superior de tu función en React. Siguiendo esta regla, te aseguras de que los hooks se llamen en el mismo orden cada vez que un componente se renderiza. Esto es lo que permite a React preservar correctamente el estado de los hooks entre multiples llamados a `useState` y `useEffect`. (Si eres curioso, vamos a explicar esto en detalle [más abajo](#explicación).)
16
16
17
17
### Llama Hooks solo en funciones de React {#only-call-hooks-from-react-functions}
En el futuro, tenemos la intención de incluir este plugin por defecto en Create React App y otros paquetes similares.
49
+
En el futuro, tenemos la intención de incluir este plugin por defecto en [Create React App](https://github.com/facebook/create-react-app) y otros paquetes similares.
50
50
51
-
**Puedes pasar a la siguiente página donde explicamos como escribir [tus propios Hooks](/docs/hooks-custom.html) ahora mismo.** En esta página, vamos a continuar explicando el razonamiento detrás de estas reglas.
51
+
**Puedes pasar a la siguiente página donde explicamos cómo escribir [tus propios Hooks](/docs/hooks-custom.html) ahora mismo.** En esta página, vamos a continuar explicando el razonamiento detrás de estas reglas.
52
52
53
53
## Explicación {#explanation}
54
54
55
-
Como [aprendimos anteriormente](/docs/hooks-state.html#tip-using-multiple-state-variables), podemos usar multiples Hooks de Estado o Hooks de Efecto en un solo componente:
55
+
Como [aprendimos anteriormente](/docs/hooks-state.html#tip-using-multiple-state-variables), podemos usar múltiples Hooks de Estado o Hooks de Efecto en un solo componente:
56
56
57
57
```js
58
58
functionForm() {
@@ -76,7 +76,7 @@ function Form() {
76
76
}
77
77
```
78
78
79
-
Entonces, como hace React para saber cual estado corresponde a cual llamado del `useState`? La respuesta es que **React se basa en el orden en el cual los Hooks son llamados**. Nuestro ejemplo funciona porque el orden en los llamados de los Hooks son el mismo en cada render:
79
+
Entonces, cómo hace React para saber cuál estado corresponde a cuál llamado del `useState`? La respuesta es que **React se basa en el orden en el cual los Hooks son llamados**. Nuestro ejemplo funciona porque el orden en los llamados de los Hooks son el mismo en cada render:
80
80
81
81
```js
82
82
// ------------
@@ -98,7 +98,7 @@ useEffect(updateTitle) // 4. Reemplaza el efecto de actualización del títu
98
98
// ...
99
99
```
100
100
101
-
Siempre y cuando el orden de los llamados a los Hooks sean los mismos entre renders, React puede asociar algún estado local con cada uno de ellos. Pero que pasa si ponemos la llamada a un Hook (por ejemplo, el efecto `persistForm`) dentro de una condición?
101
+
Siempre y cuando el orden de los llamados a los Hooks sean los mismos entre renders, React puede asociar algún estado local con cada uno de ellos. Pero qué pasa si ponemos la llamada a un Hook (por ejemplo, el efecto `persistForm`) dentro de una condición?
102
102
103
103
```js
104
104
// 🔴 Estamos rompiendo la primera regla al usar un Hook en una condición
@@ -118,7 +118,7 @@ useState('Poppins') // 🔴 2 (pero era el 3). Falla la lectura de la var
118
118
useEffect(updateTitle) // 🔴 3 (pero era el 4). Falla el reemplazo del efecto
119
119
```
120
120
121
-
React no sabría que devolver para la segunda llamada del Hook `useState`. React esperaba que la segunda llamada al Hook en este componente corresponda al efecto `persistForm`, igual que en el render anterior, pero ya no lo hace. A partir de este punto, cada siguiente llamada de un Hook después de la que nos saltamos también cambiaría de puesto por uno, lo que llevaría a la aparición de errores.
121
+
React no sabría qué devolver para la segunda llamada del Hook `useState`. React esperaba que la segunda llamada al Hook en este componente correspondiera al efecto `persistForm`, igual que en el render anterior, pero ya no lo hace. A partir de este punto, cada siguiente llamada de un Hook después de la que nos saltamos también cambiaría de puesto por uno, lo que llevaría a la aparición de errores.
122
122
123
123
**Es por esto que los Hooks deben ser utilizados en el nivel superior de nuestros componentes.** Si queremos ejecutar un efecto condicionalmente, podemos poner esa condición *dentro* de nuestro Hook:
0 commit comments