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/learn/rendering-lists.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -419,7 +419,7 @@ Dosya isimleri de dizilerdeki JSX anahtarları aynı amaca hizmet etmektedir. An
419
419
420
420
<Pitfall>
421
421
422
-
Anahtar olarak dizideki bir öğenin dizinini kullanmak isteyebilirsiniz. Aslında, hiç bir `anahtar` belirtmezseniz React'in kullanacağı anahtar budur. Ancak, bir öğe eklenirse, silinirse veya dizi yeniden sıralanırsa, öğeleri oluşturma sıranız zaman içinde değişecektir. Bir anahtar olarak dizin, genellikle gizli ve kafa karıştırıcı hatalara yol açar.
422
+
Anahtar olarak dizideki bir öğenin indeksini kullanmak isteyebilirsiniz. Aslında, hiç bir `anahtar` belirtmezseniz React'in kullanacağı anahtar budur. Ancak, bir öğe eklenirse, silinirse veya dizi yeniden sıralanırsa, öğeleri oluşturma sıranız zaman içinde değişecektir. Bir anahtar olarak indeksi kullanmak, genellikle gizli ve kafa karıştırıcı hatalara yol açar.
423
423
424
424
Benzer şekilde, anahtarları o anda oluşturmayın, örneğin `anahtar={Math.random()}` ile oluşturulan anahtarlar. Bu, anahtarların render etmeler arasında eşleşmemesine neden olarak tüm bileşenlerinizin ve DOM'un her seferinde yeniden oluşturulmasına yol açar. Bu sadece yavaş olmakla kalmaz, aynı zamanda liste öğeleri içindeki herhangi bir kullanıcı girdisini de kaybeder. Bunun yerine, verilere dayalı sabit bir ID kullanılmalıdır.
425
425
@@ -974,11 +974,11 @@ export const recipes = [{
974
974
975
975
</Sandpack>
976
976
977
-
Her bir `recipes` zaten bir `id` değerine sahip, bu yüzden dışardaki döngü bu değeri `anahtar` olarak kullanmakta. İçindekiler kısmındaki döngü için kullanabiliceğimiz bir ID değerine sahip değiliz. Ancak, bir malzeme aynı tarif içinde iki defa bulunmayacağından dolayı, malzemenin ismini `anahtar` olarak kullanmakta bir sakınca yoktur. Alternatif olarak, veri yapısını ID'ler olacak şekilde değiştirebilir ya da dizini`anahtar` olarak kullanabiliriz (malzemeleri güvenli bir şekilde yeniden sıralayamayacağımız uyarısıyla).
977
+
Her bir `recipes` zaten bir `id` değerine sahip, bu yüzden dışardaki döngü bu değeri `anahtar` olarak kullanmakta. İçindekiler kısmındaki döngü için kullanabiliceğimiz bir ID değerine sahip değiliz. Ancak, bir malzeme aynı tarif içinde iki defa bulunmayacağından dolayı, malzemenin ismini `anahtar` olarak kullanmakta bir sakınca yoktur. Alternatif olarak, veri yapısını ID'ler olacak şekilde değiştirebilir ya da indeksi`anahtar` olarak kullanabiliriz (malzemeleri güvenli bir şekilde yeniden sıralayamayacağımız uyarısıyla).
978
978
979
979
</Solution>
980
980
981
-
#### Bir liste öğesi bileşenini çıkarma {/*extracting-a-list-item-component*/}
981
+
#### Bir liste öğesi bileşeni çıkarma {/*extracting-a-list-item-component*/}
982
982
983
983
`RecipeList` bileşeni iç içe iki defa `map` metodunu kullanmaktadır. Bu işlemin basitleştirmek için, `id`, `name`, ve `ingredients` prop'larını alacak olan yeni bir `Recipe` bileşeni oluşturun. Dıştaki `anahtar` nereye ve neden yerleştirirsiniz?
#### List with a separator {/*list-with-a-separator*/}
1089
+
#### Ayraç içeren liste {/*list-with-a-separator*/}
1090
1090
1091
-
This example renders a famous haiku by Katsushika Hokusai, with each line wrapped in a `<p>` tag. Your job is to insert an `<hr />`separator between each paragraph. Your resulting structure should look like this:
1091
+
Bu örnek, Katsushika Hokusai'nin her satırı `<p>` elementi içinde olacak şekilde yazılmış ünlü bir haiku'sunu göstermektedir. Bizim görevimiz, her paragrafın arasına gelecek bir `<hr />`ayırıcı elementi eklemektir. Ortaya şöyle bir yapı çıkmalıdır:
1092
1092
1093
1093
```js
1094
1094
<article>
@@ -1100,7 +1100,7 @@ This example renders a famous haiku by Katsushika Hokusai, with each line wrappe
1100
1100
</article>
1101
1101
```
1102
1102
1103
-
A haiku only contains three lines, but your solution should work with any number of lines. Note that `<hr />`elements only appear *between* the `<p>`elements, not in the beginning or the end!
1103
+
Bir haiku yalnızca üç satır içerir ancak yapacağınız çözüm herhangi bir sayıda satırla da çalışmalıdır. `<hr />`elementinin `<p>`elementinin yalnızca *arasında* olduğuna, başında ya da sonunda olmadığına dikkat edin!
1104
1104
1105
1105
<Sandpack>
1106
1106
@@ -1143,17 +1143,17 @@ hr {
1143
1143
1144
1144
</Sandpack>
1145
1145
1146
-
(This is a rare case where index as a key is acceptable because a poem's lines will never reorder.)
1146
+
(Burası indeksi anahtar olarak kullanmakta sakınca olmadağı nadir durumlardan biridir çünkü şiirin satırlarının yerleri hiçbir zaman değişmeyecektir.)
1147
1147
1148
1148
<Hint>
1149
1149
1150
-
You'll either need to convert `map`to a manual loop, or use a fragment.
1150
+
Burada `map`metodu yerine manuel bir döngü kullanmanız ya da bir fragment kullanmanız gerekmektedir.
1151
1151
1152
1152
</Hint>
1153
1153
1154
1154
<Solution>
1155
1155
1156
-
You can write a manual loop, inserting `<hr />`and`<p>...</p>`into the output array as you go:
1156
+
Output dizisine `<hr />`ve`<p>...</p>`elementleri ekleyerek manuel bir döngü yazabilirsiniz:
1157
1157
1158
1158
<Sandpack>
1159
1159
@@ -1169,7 +1169,7 @@ const poem = {
1169
1169
exportdefaultfunctionPoem() {
1170
1170
let output = [];
1171
1171
1172
-
//Fill the output array
1172
+
//Output dizisine ekleyin
1173
1173
poem.lines.forEach((line, i) => {
1174
1174
output.push(
1175
1175
<hr key={i +'-separator'} />
@@ -1180,7 +1180,7 @@ export default function Poem() {
1180
1180
</p>
1181
1181
);
1182
1182
});
1183
-
//Remove the first <hr />
1183
+
//İlk <hr /> elementi silin
1184
1184
output.shift();
1185
1185
1186
1186
return (
@@ -1208,9 +1208,9 @@ hr {
1208
1208
1209
1209
</Sandpack>
1210
1210
1211
-
Using the original line index as a `key` doesn't work anymore because each separator and paragraph are now in the same array. However, you can give each of them a distinct key using a suffix, e.g.`key={i + '-text'}`.
1211
+
Şiirin satır indeksini `anahtar` olarak kullanmak artık işe yaramayacaktır çünkü artık her ayraç ve paragraf aynı dizide bulunmakta. Ancak, bir sonek kullanarak her birine ayrı bir anahtar verebilirsiniz, örneğin`key={i + '-text'}`.
1212
1212
1213
-
Alternatively, you could render a collection of fragments which contain `<hr />`and`<p>...</p>`. However, the `<>...</>`shorthand syntax doesn't support passing keys, so you'd have to write `<Fragment>`explicitly:
1213
+
Alternatif olarak, `<hr />`ve`<p>...</p>` elementlerini içeren fragmentler render edebilirsiniz. Ancak, `<>...</>`kısa syntax'i anahtarları prop olarak alamaz bu yüzden `<Fragment>`olarak kullanmanız gerekmektedir:
1214
1214
1215
1215
<Sandpack>
1216
1216
@@ -1256,7 +1256,7 @@ hr {
1256
1256
1257
1257
</Sandpack>
1258
1258
1259
-
Remember, fragments (often written as `<> </>`) let you group JSX nodes without adding extra `<div>`s!
1259
+
Şunu unutmayın, fragmentler (`<> </>` şeklinde yazılır) fazladan `<div>`ler kullanmadan JSX node'larını gruplamanıza izin verirler.
0 commit comments