Skip to content

Commit ae86040

Browse files
committed
fix typos
1 parent eddaf60 commit ae86040

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

src/content/learn/updating-arrays-in-state.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -198,19 +198,19 @@ export default function List() {
198198

199199
</Sandpack>
200200

201-
"Sil" butonuna bir kaç kez tıklayın ve tıklama yöneticisine bakın.
201+
"Sil" butonuna birkaç kez tıklayın ve tıklama yöneticisine bakın.
202202

203203
```js
204204
setArtists(
205205
artists.filter(a => a.id !== artist.id)
206206
);
207207
```
208208

209-
Burada `artists.filter(a => a.id !== artist.id)` ifadesi "ID'leri `artist.id`'den farklı olan `artists`'den oluşan yeni bir dizi oluştur" anlamına gelmektedir. Diğer bir deyişle, her bir artist'e karşılık gelen "Sil" butonu o artist'i diziden filtreleyecek ve nihai dizi ile yeniden render isteği gönderecektir. `filter` metodu orijinal diziyi değiştirmez.
209+
Burada `artists.filter(a => a.id !== artist.id)` ifadesi "ID'leri `artist.id`'den farklı olan `artists`'den oluşan yeni bir dizi oluştur" anlamına gelmektedir. Diğer bir deyişle, her bir artist'e karşılık gelen "Sil" butonu o artist'i diziden filtreleyecek ve nihai dizi ile yeniden render isteği gönderecektir. `filter` metodunun orijinal diziyi değiştirmediğini unutmayın.
210210

211211
### Bir diziyi dönüştürmek {/*transforming-an-array*/}
212212

213-
Eğer dizideki bazı ya da tüm öğeleri değiştirmek isterseniz **yeni** bir dizi oluşturmak için `map()` metodunu kullanabilirsiniz. `map`'e ileteceğiniz fonksiyon, verisine ya da indeksine (veya her ikisine) dayalı olarak her bir öğeyle ne yapacağınızı belirler.
213+
Eğer dizideki bazı ya da tüm öğeleri değiştirmek isterseniz **yeni** bir dizi oluşturmak için `map()` metodunu kullanabilirsiniz. `map`'e ileteceğiniz fonksiyon, verisine veya indeksine (veya her ikisine) dayalı olarak her bir öğeyle ne yapacağınızı belirler.
214214

215215
Bu örnekte dizi, iki daire ve bir karenin koordinatlarını içermektedir. Butona tıkladığınız zaman sadece daireler 50 piksel aşağı hareket etmektedir. Bunu, `map()` metodunu kullanıp yeni bir veri dizisi oluşturarak yapar:
216216

@@ -236,7 +236,7 @@ export default function ShapeEditor() {
236236
// Değişiklik yok
237237
return shape;
238238
} else {
239-
// 50 piksel aşağıda yeni bir daire döndür
239+
// 50 piksel aşağıda yeni bir daire döndürür
240240
return {
241241
...shape,
242242
y: shape.y + 50,
@@ -442,25 +442,25 @@ export default function List() {
442442

443443
</Sandpack>
444444

445-
Burada `[...list]` spread sözdizimi kullanılarak orijinal dizinin bir kopyası oluşturulur. Artık bir kopyanız olduğuna göre `nextList.reverse()` ya da `nextList.sort()` gibi mutasyona sebep olan metodları kullanabilir, hatta `nextList[0] = "something"` ile öğeleri tek tek yeni değerlerine atayabilirsiniz.
445+
Burada `[...list]` spread sözdizimi kullanılarak orijinal dizinin bir kopyası oluşturulur. Artık bir kopyanız olduğuna göre `nextList.reverse()` ya da `nextList.sort()` gibi mutasyona sebep olan metodlar kullanabilir, hatta `nextList[0] = "something"` ile öğeleri tek tek yeni değerlerine atayabilirsiniz.
446446

447-
Ancak, **bir diziyi kopyalasanız bile dizinin _içindeki_ öğeleri doğrudan mutasyona uğratamazsınız.** Bunun nedeni yaptığınız kopyalamanın yüzeysel (shallow) olmasıdır yani yeni dizi, orijinal diziyle aynı öğeleri içermektedir. Dolayısıyla, kopyalanan dizinin içindeki bir nesneyi değiştirdiğiniz zaman mevcut state'i de mutasyona uğratmış olursunuz. Örneğin, aşağıdaki gibi bir kod sorunludur.
447+
Ancak, **bir diziyi kopyalasanız bile dizinin _içindeki_ öğeleri doğrudan mutasyona uğratamazsınız.** Bunun nedeni yaptığınız kopyalamanın yüzeysel (shallow) olmasıdır. Yani yeni dizi, orijinal diziyle aynı öğeleri içermektedir. Dolayısıyla, kopyalanan dizinin içindeki bir nesneyi değiştirdiğiniz zaman mevcut state'i de mutasyona uğratmış olursunuz. Örneğin, aşağıdaki gibi bir kod sorunludur.
448448

449449
```js
450450
const nextList = [...list];
451451
nextList[0].seen = true; // Sorun: list[0]'ı mutasyona uğratır
452452
setList(nextList);
453453
```
454454

455-
`nextList` ve `list` iki farklı dizi olmasına rağmen, **`nextList[0]` ve `list[0]` ifadeleri aynı nesneyi işaret eder.** Yani `nextList[0].seen` ifadesini değiştirirseniz, aynı zamanda `list[0].seen` ifadesini de değiştirmiş olursunuz. Bu, state'i mutasyona uğratmaktır ki bundan kaçınmalısınız! Bu sorunu [iç içe JavaScript nesnelerini güncelleme](/learn/updating-objects-in-state#updating-a-nested-object) yöntemine benzer şekilde, değiştirmek istediğiniz öğeleri mutasyona uğratmak yerine tek tek kopyalayarak çözebilirsiniz. Nasıl yapıldığını görelim.
455+
`nextList` ve `list` iki farklı dizi olmasına rağmen, **`nextList[0]` ve `list[0]` ifadeleri aynı nesneyi işaret eder.** Yani `nextList[0].seen` değerini değiştirirseniz, aynı zamanda `list[0].seen` değerini de değiştirmiş olursunuz. Bu, state'i mutasyona uğratmaktır ki bundan kaçınmalısınız! Bu sorunu [iç içe JavaScript nesnelerini güncelleme](/learn/updating-objects-in-state#updating-a-nested-object) yöntemine benzer şekilde, değiştirmek istediğiniz öğeleri mutasyona uğratmak yerine tek tek kopyalayarak çözebilirsiniz. Nasıl yapıldığını görelim.
456456

457457
## Dizi içindeki nesneleri güncelleme {/*updating-objects-inside-arrays*/}
458458

459-
Nesneler dizilerin _gerçekten_ "içinde" değillerdir. Yazdığınız kodda "içeride" olarak görünebilir ancak bir dizideki her nesne, dizinin "işaret ettiği" ayrı bir değerdir. Bu yüzden `list[0]` gibi iç içe ifadeleri değiştirirken dikkatli olmalısınız. Başka bir kişinin eser listesi (artwork list), dizinin aynı öğesine işaret edebilir!
459+
Nesneler dizilerin _gerçekten_ "içinde" değillerdir. Yazdığınız kodda "içeride" olarak görünebilir ancak bir dizideki her nesne, dizinin "işaret ettiği" ayrı bir değerdir. Bu yüzden `list[0]` gibi iç içe ifadeleri değiştirirken dikkatli olmalısınız. Başka bir kişinin sanat eseri listesi (artwork list), dizinin aynı öğesine işaret edebilir!
460460

461461
**İç içe geçmiş state'i güncellerken, güncellemek istediğiniz noktadan en üst düzeye kadar kopyalar oluşturmanız gerekir.** Şimdi bunun nasıl olduğunu görelim.
462462

463-
Bu örnekte, iki farklı eser listesi aynı ilk state'e (initialList) sahiptir. Bu listelerin izole olmaları gerekirdi ancak bir mutasyon nedeniyle yanlışlıkla state'leri paylaşmaktadırlar ve listedeki bir kutuyu işaretlemek diğer listedeki kutuları da etkilemektedir:
463+
Bu örnekte, iki farklı sanat eseri listesi aynı ilk state'e (initialList) sahiptir. Bu listelerin izole olmaları gerekirdi ancak bir mutasyon nedeniyle yanlışlıkla state'leri paylaşmaktadırlar ve listedeki bir kutuyu işaretlemek diğer listedeki kutuları da etkilemektedir:
464464

465465
<Sandpack>
466466

@@ -501,11 +501,11 @@ export default function BucketList() {
501501
return (
502502
<>
503503
<h1>Görülecek Sanat Eserleri Listesi</h1>
504-
<h2>Görmek istediğim sanatlar listesi:</h2>
504+
<h2>Görmek istediğim eserler listesi:</h2>
505505
<ItemList
506506
artworks={myList}
507507
onToggle={handleToggleMyList} />
508-
<h2>Senin görmek istediğin sanatlar listesi:</h2>
508+
<h2>Senin görmek istediğin eserler listesi:</h2>
509509
<ItemList
510510
artworks={yourList}
511511
onToggle={handleToggleYourList} />
@@ -614,11 +614,11 @@ export default function BucketList() {
614614
return (
615615
<>
616616
<h1>Görülecek Sanat Eserleri Listesi</h1>
617-
<h2>Görmek istediğim sanatlar listesi:</h2>
617+
<h2>Görmek istediğim eserler listesi:</h2>
618618
<ItemList
619619
artworks={myList}
620620
onToggle={handleToggleMyList} />
621-
<h2>Senin görmek istediğin sanatlar listesi:</h2>
621+
<h2>Senin görmek istediğin eserler listesi:</h2>
622622
<ItemList
623623
artworks={yourList}
624624
onToggle={handleToggleYourList} />
@@ -763,7 +763,7 @@ function ItemList({ artworks, onToggle }) {
763763

764764
</Sandpack>
765765

766-
Immer ile **`artwork.seen = nextSeen` gibi mutasyonlar artık sorun çıkarmadığına dikkat edin:**
766+
Immer ile **`artwork.seen = nextSeen` gibi mutasyonların artık sorun çıkarmadığına dikkat edin:**
767767

768768
```js
769769
updateMyTodos(draft => {
@@ -772,7 +772,7 @@ updateMyTodos(draft => {
772772
});
773773
```
774774

775-
Bunun nedeni, _orijinal_ state'i mutasyona uğratmamanızdır. Burada Immer tarafından sağlanan özel bir `draft` nesnesini mutasyona uğratmaktayız. Benzer şekilde, `draft` nesnesinde `push()` ve `pop()` gibi mutasyona neden olan metodları da uygulayabilirsiniz.
775+
Bunun nedeni, _orijinal_ state'i mutasyona uğratmamanızdır. Burada Immer tarafından sağlanan özel bir `draft` nesnesini mutasyona uğratmaktayız. Benzer şekilde, `draft` nesnesine `push()` ve `pop()` gibi mutasyona neden olan metodları da uygulayabilirsiniz.
776776

777777
Arka planda Immer, `draft`'a yaptığınız değişikliklere göre her zaman bir sonraki state'i sıfırdan oluşturur. Bu, olay yönetecilerinizi, state'i hiç mutasyona uğratmadan kısa ve öz olarak tutar.
778778

@@ -1080,7 +1080,7 @@ button { margin: 5px; }
10801080

10811081
#### Mutasyona uğratmayan metodlar kullanarak mutasyonları düzeltin {/*fix-the-mutations-using-non-mutative-methods*/}
10821082

1083-
Bu örnekte, `App.js` dosyasındaki tüm olay yönetecileri dizileri mutasyona uğratacak metodlar kullanmaktadır. Bu nedenle, yapılacaklar listesini düzenlemek ve silmek çalışmamaktadır. `handleAddTodo`, `handleChangeTodo`, ve `handleDeleteTodo` fonksiyonlarını mutasyona uğratmayan metodlar kullanarak tekrar yazın:
1083+
Bu örnekte, `App.js` dosyasındaki tüm olay yönetecileri dizileri mutasyona uğratacak metodlar kullanmaktadır. Bu nedenle, yapılacaklar listesindekileri düzenlemek ve silmek çalışmamaktadır. `handleAddTodo`, `handleChangeTodo`, ve `handleDeleteTodo` fonksiyonlarını mutasyona uğratmayan metodlar kullanarak tekrar yazın:
10841084

10851085
<Sandpack>
10861086

@@ -1783,7 +1783,7 @@ ul, li { margin: 0; padding: 0; }
17831783

17841784
Immer ile mutasyona uğratan ve uğratmayan yaklaşımları beraber kullanabilirsiniz.
17851785

1786-
Örneğin, bu sürümde `handleAddTodo` fonksiyonu Immer `draft`'ı mutasyona uğratacak şekilde yazılırken, `handleChangeTodo` ve `handleDeleteTodo` fonksiyonları mutasyona uğratmayan `map` ve `filter` metodları ile yazılmıştır:
1786+
Örneğin, burada `handleAddTodo` fonksiyonu Immer `draft`'ı mutasyona uğratacak şekilde yazılırken, `handleChangeTodo` ve `handleDeleteTodo` fonksiyonları mutasyona uğratmayan `map` ve `filter` metodları ile yazılmıştır:
17871787

17881788
<Sandpack>
17891789

0 commit comments

Comments
 (0)