From eddaf606fc0c1d2a210f32cd5c95ed56ac650cbd Mon Sep 17 00:00:00 2001 From: serkanisyapan Date: Sat, 27 May 2023 14:12:01 +0300 Subject: [PATCH 1/3] translate updating arrays in state --- src/content/learn/updating-arrays-in-state.md | 298 +++++++++--------- 1 file changed, 149 insertions(+), 149 deletions(-) diff --git a/src/content/learn/updating-arrays-in-state.md b/src/content/learn/updating-arrays-in-state.md index 45c6b70dc..b3a58b175 100644 --- a/src/content/learn/updating-arrays-in-state.md +++ b/src/content/learn/updating-arrays-in-state.md @@ -1,52 +1,52 @@ --- -title: Updating Arrays in State +title: State İçerisindeki Dizileri Güncelleme --- -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. +JavaScript'te diziler mutasyona uğratılabilir (mutable) ancak siz state'te sakladığınız dizileri mutasyona uğratılamaz (immutable) olarak görmelisiniz. Tıpkı nesnelerde olduğu gibi, state'te saklanan bir diziyi güncellemek istediğiniz zaman yeni bir dizi oluşturmanız (veya var olanın bir kopyasını oluşturmanız) ve ardından yeni oluşturduğunuz diziyi kullanmak için state'i güncellemeniz gerekmektedir. -- 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 +- React state'indeki bir diziye öğeler nasıl eklenir, çıkarılır ya da değiştirilir +- Bir dizi içindeki nesne nasıl güncellenir +- Immer kullanarak dizi kopyalama işlemi daha az tekrarla nasıl yapılır -## Updating arrays without mutation {/*updating-arrays-without-mutation*/} +## Dizileri mutasyona uğratmadan güncelleme {/*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()`. +JavaScript'te diziler de bir tür nesnedir. [Nesnelerde olduğu gibi](/learn/updating-objects-in-state), **React state'indeki dizileri salt okunur olarak görmelisiniz.** Bu, `arr[0] = 'bird'` şeklinde bir dizi içindeki öğeleri başka değerlere yeniden atamamanız, ayrıca `push()` ve `pop()` gibi dizileri mutasyona uğratan JavaScript metodlarını kullanmamanız gerektiği anlamına gelir. -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. +Bu metodları kullanmak yerine, bir diziyi her güncellemek istediğinizde state setter fonksiyonunuza *yeni* bir dizi iletmelisiniz. Bunu yapmak için, `filter()` ve `map()` gibi diziyi mutasyona uğratmayan JavaScript metodlarını kullanarak orijinal diziden yeni bir dizi oluşturabilirsiniz. Ardından, state'inizi kopyaladığınız dizi olarak güncelleyebilirsiniz. -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: +Aşağıda sık kullanılan dizi metodları tablo halinde gösterilmiştir. React state'indeki dizilerle çalışırken sol sütundaki metodları kullanmaktan kaçınarak sağ sütundaki metodları tercih etmelisiniz. -| | avoid (mutates the array) | prefer (returns a new array) | +| | kaçınılacaklar (diziyi mutasyona uğratır) | tercih edilecekler (yeni bir dizi döndürür) | | --------- | ----------------------------------- | ------------------------------------------------------------------- | -| 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)) | +| eklemek | `push`, `unshift` | `concat`, `[...arr]` spread sözdizimi ([örnek](#adding-to-an-array)) | +| çıkartmak | `pop`, `shift`, `splice` | `filter`, `slice` ([örnek](#removing-from-an-array)) | +| değiştirmek | `splice`, `arr[i] = ...` ataması | `map` ([örnek](#replacing-items-in-an-array)) | +| sıralamak | `reverse`, `sort` | ilk önce diziyi kopyalayın ([örnek](#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. +Alternatif olarak, her iki sütundaki metodları kullanmanıza izin veren [Immer'ı] (#write-concise-update-logic-with-immer) tercih edebilirsiniz. -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: +Ne yazık ki, [`slice`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) ve [`splice`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) metodları isim olarak benzeseler bile birbirlerinden çok farklıdırlar. -* `slice` lets you copy an array or a part of it. -* `splice` **mutates** the array (to insert or delete items). +* `slice` metodu dizinin bir parçasını veya tamamını kopyalamınızı sağlar. +* `splice` diziyi **mutasyona uğratır** (diziye yeni öğe eklemek ya da var olanı çıkartmak için kullanılır). -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. +React'te, `slice` (`p` yok!) metodunu daha sık kullanacaksınız çünkü state'teki nesneleri veya dizileri mutasyona uğratmak istemezsiniz. [Nesneleri Güncelleme](/learn/updating-objects-in-state) sayfasında mutasyon nedir ve state için neden kullanılmamalıdır öğrenebilirsiniz. -### Adding to an array {/*adding-to-an-array*/} +### Bir diziye eklemek {/*adding-to-an-array*/} -`push()` will mutate an array, which you don't want: +`push()` metodu diziyi mutasyona uğratacaktır ancak biz bunu istemiyoruz. @@ -61,7 +61,7 @@ export default function List() { return ( <> -

Inspiring sculptors:

+

İlham verici heykeltıraşlar:

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