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/tutorial-tic-tac-toe.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2330,9 +2330,9 @@ body {
2330
2330
2331
2331
### تنفيذ السفر عبر الزمن {/*implementing-time-travel*/}
2332
2332
2333
-
في تاريخ لعبة "تيك تاك تو" كل نقلة سابقة لها معرف فريد مرتبط بها: إنها الرقم التسلسلي للنقلة. لن يتم إعادة ترتيب النقلات، أو حذفها، أو إدراجها في الوسط، لذلك فمن الآمن استخدام مؤشر النقلة كمفتاح.
2333
+
في تاريخ لعبة "تيك تاك تو" كل نقلة سابقة لها معرف فريد مرتبط بها: هو الرقم الترتيبي للنقلة. لن يتم إعادة ترتيب النقلات، أو حذفها، أو إدراجها في الوسط، لذلك فمن الآمن استخدام فهرس النقلة كمفتاح (index as a key).
2334
2334
2335
-
في دالة `Game`، يمكنك إضافة المفتاح كـ `<li key={move}>`، وإذا قمت بإعادة تحميل اللعبة المعروضة، فإن خطأ "key" في React يجب أن يختفي:
2335
+
في دالة `Game`، يمكنك إضافة المفتاح كـ `<li key={move}>`، وإذا قمت بإعادة تحميل اللعبة، فإن خطأ "key" في React يجب أن يختفي:
2336
2336
2337
2337
```js {4}
2338
2338
const moves = history.map((squares, move) => {
@@ -2513,7 +2513,7 @@ body {
2513
2513
2514
2514
</Sandpack>
2515
2515
2516
-
قبل أن تستطيع تنفيذ `jumpTo`، تحتاج إلى أن يحتفظ المكوّن `Game` بتتبّع الخطوة التي يشاهدها المستخدم حاليًا. للقيام بذلك، قم بتعريف متغير حالة جديد يُسمّى `currentMove`، ويُعين افتراضيًا إلى `0`:
2516
+
قبل أن تنفذ `jumpTo`، تحتاج إلى أن يحتفظ المكوّن `Game` بتتبّع الخطوة المعروضة للمستخدم حاليًا. للقيام بذلك، قم بتعريف متغير حالة جديد يُسمّى `currentMove`، ويُعين افتراضيًا إلى `0`:
2517
2517
2518
2518
```js {4}
2519
2519
export default function Game() {
@@ -2525,7 +2525,7 @@ export default function Game() {
2525
2525
}
2526
2526
```
2527
2527
2528
-
الآن، عدّل الدالة `jumpTo` داخل المكوّن `Game` لتحديث هذا `currentMove`. ستعين أيضًا `xIsNext` إلى `true` إذا كان الرقم الذي تقوم بتغيير `currentMove` إليه فرديًا.
2528
+
الآن، عدّل الدالة `jumpTo` داخل المكوّن `Game` لتحديث هذا المتغير `currentMove`. ستعين أيضًا `xIsNext` إلى `true` إذا كان الرقم الذي تقوم بتغيير `currentMove` إليه زوجيًا (يقبل القسمة على 2).
2529
2529
2530
2530
```js {4-5}
2531
2531
export default function Game() {
@@ -2540,7 +2540,7 @@ export default function Game() {
2540
2540
2541
2541
الآن، ستقوم بإجراء تغييرين على الدالة `handlePlay` في المكوّن `Game` التي تُستدعى عند النقر على مربّع.
2542
2542
2543
-
- إذا "عدت إلى الوراء في الوقت" ثم قمت بإجراء حركة جديدة من هذه النقطة، فإنك تريد فقط الاحتفاظ بالتاريخ حتى هذه النقطة. بدلاً من إضافة `nextSquares` بعد جميع العناصر (`...` spread syntax) في `history`، ستضيفها بعد جميع العناصر في `history.slice(0, currentMove + 1)` بحيث تحتفظ فقط بهذا الجزء من التاريخ.
2543
+
- إذا "عدت إلى الوراء في الزمن" ثم قمت بإجراء حركة جديدة من هذه النقطة، فإنك تريد فقط الاحتفاظ بالتاريخ حتى هذه النقطة. بدلاً من إضافة `nextSquares` بعد جميع العناصر (`...` spread syntax) في `history`، ستضيفها بعد جميع العناصر في `history.slice(0, currentMove + 1)` بحيث تحتفظ فقط بهذا الجزء من التاريخ.
2544
2544
- في كل مرة يتم فيها إجراء حركة، تحتاج إلى تحديث `currentMove` للإشارة إلى أحدث إدخال في التاريخ.
0 commit comments