From 42ecfc63a6f8f77e334ca3b25c01bede39f9e91a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Jim=C3=A9nez?= <52179095+Nicolas-alt@users.noreply.github.com> Date: Sat, 22 Oct 2022 11:43:41 -0500 Subject: [PATCH] Translate updating arrays in state ( beta docs ) (#557) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add codebase to glossary * apply style guide * Update updating-arrays-in-state.md * Update updating-arrays-in-state.md Co-authored-by: Rainer Martínez Fraga --- .../content/learn/updating-arrays-in-state.md | 344 +++++++++--------- 1 file changed, 172 insertions(+), 172 deletions(-) diff --git a/beta/src/content/learn/updating-arrays-in-state.md b/beta/src/content/learn/updating-arrays-in-state.md index eae89facf..a640d27d4 100644 --- a/beta/src/content/learn/updating-arrays-in-state.md +++ b/beta/src/content/learn/updating-arrays-in-state.md @@ -1,52 +1,52 @@ --- -title: Updating Arrays in State +title: Actualizar arrays en el estado --- -Arrays are mutable in JavaScript, but you should treat them as immutable when you store them in state. Just like with objects, when you want to update an array stored in state, you need to create a new one (or make a copy of an existing one), and then set state to use the new array. +Los _arrays_ son mutables en JavaScript, pero deberían tratarse como inmutables cuando los almacenas en el estado. Al igual que los objetos, cuando quieras actualizar un _array_ almacenado en el estado, necesitas crear uno nuevo (o hacer una copia de uno existente) y luego asignar el estado para que utilice este nuevo _array_. -- How to add, remove, or change items in an array in React state -- How to update an object inside of an array -- How to make array copying less repetitive with Immer +- Cómo añadir, eliminar o cambiar elementos en un _array_ en el estado de React +- Cómo actualizar un objeto dentro de un _array_ +- Cómo copiar un _array_ de forma menos repetitiva con Immer -## Updating arrays without mutation {/*updating-arrays-without-mutation*/} +## Actualizar _arrays_ sin mutación {/*updating-arrays-without-mutation*/} -In JavaScript, arrays are just another kind of object. [Like with objects](/learn/updating-objects-in-state), **you should treat arrays in React state as read-only.** This means that you shouldn't reassign items inside an array like `arr[0] = 'bird'`, and you also shouldn't use methods that mutate the array, such as `push()` and `pop()`. +En JavaScript, los _arrays_ son solo otro tipo de objeto. [Como con los objetos](/learn/updating-objects-in-state), **deberías tratar los _arrays_ en el estado de React como si fueran de solo lectura.** Esto significa que no deberías reasignar elementos dentro de un _array_ como `arr[0] = 'pájaro'`, y tampoco deberías usar métodos que puedan mutar el _array_, como `push()` y `pop()`. -Instead, every time you want to update an array, you'll want to pass a *new* array to your state setting function. To do that, you can create a new array from the original array in your state by calling its non-mutating methods like `filter()` and `map()`. Then you can set your state to the resulting new array. +En su lugar, cada vez que quieras actualizar un _array_, querrás pasar un *nuevo* _array_ a la función de asignación de estado. Para hacerlo, puedes crear un nuevo _array_ a partir del _array_ original en el estado si llamas a sus métodos que no lo muten como `filter()` y `map()`. Luego puedes asignar el estado a partir del nuevo _array_ resultante. -Here is a reference table of common array operations. When dealing with arrays inside React state, you will need to avoid the methods in the left column, and instead prefer the methods in the right column: +Aquí hay una tabla de referencia con las operaciones más comunes con _arrays_. Cuando se trata de _arrays_ dentro del estado de React, necesitarás evitar los métodos de la columna izquierda, y en su lugar es preferible usar los métodos de la columna derecha. -| | avoid (mutates the array) | prefer (returns a new array) | -| --------- | ----------------------------------- | ------------------------------------------------------------------- | -| adding | `push`, `unshift` | `concat`, `[...arr]` spread syntax ([example](#adding-to-an-array)) | -| removing | `pop`, `shift`, `splice` | `filter`, `slice` ([example](#removing-from-an-array)) | -| replacing | `splice`, `arr[i] = ...` assignment | `map` ([example](#replacing-items-in-an-array)) | -| sorting | `reverse`, `sort` | copy the array first ([example](#making-other-changes-to-an-array)) | +| | evita (muta el _array_) | preferido (retorna un nuevo _array_) | +|--------------|------------------------------------------|------------------------------------------------------------------------------| +| añadir | `push`, `unshift` | `concat`, `[...arr]` operador de propagación ([ejemplo](#adding-to-an-array))| +| eliminar | `pop`, `shift`, `splice` | `filter`, `slice` ([ejemplo](#removing-from-an-array)) | +| reemplazar | `splice`, `arr[i] = ...` asigna | `map` ([ejemplo](#replacing-items-in-an-array)) | +| ordenar | `reverse`, `sort` | copia el _array_ primero ([ejemplo](#making-other-changes-to-an-array)) | -Alternatively, you can [use Immer](#write-concise-update-logic-with-immer) which lets you use methods from both columns. +Como alternativa, puedes [usar Immer](#write-concise-update-logic-with-immer) el cual te permite usar métodos de ambas columnas. -Unfortunately, [`slice`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) and [`splice`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) are named similarly but are very different: +Desafortunadamente, [`slice`](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) y [`splice`](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) tienen nombres muy similares pero son muy diferentes: -* `slice` lets you copy an array or a part of it. -* `splice` **mutates** the array (to insert or delete items). +* `slice` te permite copiar un _array_ o una parte del mismo. +* `splice` **muta** el _array_ (para insertar o eliminar elementos). -In React, you will be using `slice` (no `p`!) a lot more often because you don't want to mutate objects or arrays in state. [Updating Objects](/learn/updating-objects-in-state) explains what mutation is and why it's not recommended for state. +En React, estarás usando `slice` (no `p`!) mucho más seguido porque no quieres mutar objetos o _arrays_ en el estado. [Actualizar objetos](/learn/updating-objects-in-state) explica qué es mutación y por qué no se recomienda para el estado. -### Adding to an array {/*adding-to-an-array*/} +### Añadir a un _array_ {/*adding-to-an-array*/} -`push()` will mutate an array, which you don't want: +`push()` muta un _array_, lo cual no queremos: @@ -61,7 +61,7 @@ export default function List() { return ( <> -

Inspiring sculptors:

+

Escultores inspiradores:

setName(e.target.value)} @@ -72,7 +72,7 @@ export default function List() { id: nextId++, name: name, }); - }}>Add + }}>Añadir