Skip to content

Commit 9b88abf

Browse files
authored
2740
1 parent d149f0f commit 9b88abf

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

src/content/learn/tutorial-tic-tac-toe.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2330,9 +2330,9 @@ body {
23302330

23312331
### تنفيذ السفر عبر الزمن {/*implementing-time-travel*/}
23322332

2333-
في تاريخ لعبة "تيك تاك تو" كل نقلة سابقة لها معرف فريد مرتبط بها: إنها الرقم التسلسلي للنقلة. لن يتم إعادة ترتيب النقلات، أو حذفها، أو إدراجها في الوسط، لذلك فمن الآمن استخدام مؤشر النقلة كمفتاح.
2333+
في تاريخ لعبة "تيك تاك تو" كل نقلة سابقة لها معرف فريد مرتبط بها: هو الرقم الترتيبي للنقلة. لن يتم إعادة ترتيب النقلات، أو حذفها، أو إدراجها في الوسط، لذلك فمن الآمن استخدام فهرس النقلة كمفتاح (index as a key).
23342334

2335-
في دالة `Game`، يمكنك إضافة المفتاح كـ `<li key={move}>`، وإذا قمت بإعادة تحميل اللعبة المعروضة، فإن خطأ "key" في React يجب أن يختفي:
2335+
في دالة `Game`، يمكنك إضافة المفتاح كـ `<li key={move}>`، وإذا قمت بإعادة تحميل اللعبة، فإن خطأ "key" في React يجب أن يختفي:
23362336

23372337
```js {4}
23382338
const moves = history.map((squares, move) => {
@@ -2513,7 +2513,7 @@ body {
25132513

25142514
</Sandpack>
25152515

2516-
قبل أن تستطيع تنفيذ `jumpTo`، تحتاج إلى أن يحتفظ المكوّن `Game` بتتبّع الخطوة التي يشاهدها المستخدم حاليًا. للقيام بذلك، قم بتعريف متغير حالة جديد يُسمّى `currentMove`، ويُعين افتراضيًا إلى `0`:
2516+
قبل أن تنفذ `jumpTo`، تحتاج إلى أن يحتفظ المكوّن `Game` بتتبّع الخطوة المعروضة للمستخدم حاليًا. للقيام بذلك، قم بتعريف متغير حالة جديد يُسمّى `currentMove`، ويُعين افتراضيًا إلى `0`:
25172517

25182518
```js {4}
25192519
export default function Game() {
@@ -2525,7 +2525,7 @@ export default function Game() {
25252525
}
25262526
```
25272527

2528-
الآن، عدّل الدالة `jumpTo` داخل المكوّن `Game` لتحديث هذا `currentMove`. ستعين أيضًا `xIsNext` إلى `true` إذا كان الرقم الذي تقوم بتغيير `currentMove` إليه فرديًا.
2528+
الآن، عدّل الدالة `jumpTo` داخل المكوّن `Game` لتحديث هذا المتغير `currentMove`. ستعين أيضًا `xIsNext` إلى `true` إذا كان الرقم الذي تقوم بتغيير `currentMove` إليه زوجيًا (يقبل القسمة على 2).
25292529

25302530
```js {4-5}
25312531
export default function Game() {
@@ -2540,7 +2540,7 @@ export default function Game() {
25402540

25412541
الآن، ستقوم بإجراء تغييرين على الدالة `handlePlay` في المكوّن `Game` التي تُستدعى عند النقر على مربّع.
25422542

2543-
- إذا "عدت إلى الوراء في الوقت" ثم قمت بإجراء حركة جديدة من هذه النقطة، فإنك تريد فقط الاحتفاظ بالتاريخ حتى هذه النقطة. بدلاً من إضافة `nextSquares` بعد جميع العناصر (`...` spread syntax) في `history`، ستضيفها بعد جميع العناصر في `history.slice(0, currentMove + 1)` بحيث تحتفظ فقط بهذا الجزء من التاريخ.
2543+
- إذا "عدت إلى الوراء في الزمن" ثم قمت بإجراء حركة جديدة من هذه النقطة، فإنك تريد فقط الاحتفاظ بالتاريخ حتى هذه النقطة. بدلاً من إضافة `nextSquares` بعد جميع العناصر (`...` spread syntax) في `history`، ستضيفها بعد جميع العناصر في `history.slice(0, currentMove + 1)` بحيث تحتفظ فقط بهذا الجزء من التاريخ.
25442544
- في كل مرة يتم فيها إجراء حركة، تحتاج إلى تحديث `currentMove` للإشارة إلى أحدث إدخال في التاريخ.
25452545

25462546

0 commit comments

Comments
 (0)