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/thinking-in-react.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -307,16 +307,18 @@ SearchBar نیاز دارد که این استیت (متن جستجو و مقد
307
307
تصمیم برای محل قرارگیری استیت: ما مقادیر متن فیلتر و وضعیت چکباکس را در FilterableProductTable نگهداری خواهیم کرد. ***
308
308
بنابراین مقادیر استیت در FilterableProductTable قرار خواهند گرفت.
309
309
</p>
310
-
310
+
<pdir="rtl">
311
311
استیت را درون کامپوننتی که [`useState()` Hook.](/reference/react/useState) دارد اضافه کنید. Hookها توابه خاصی هستند که به شما اجازه میدهند تا قدرت ریاکت را درونشان قلاب کنید. دو متغییر استیت در بالای `FilterableProductTable`تعریف و مقدار پیشفرض آنها را مشخص کنید:
سپس `filterText` و `inStockOnly` را به `ProductTable` و `SearchBar` به عنوان prop ارسال کنید:
321
+
</p>
320
322
321
323
```js
322
324
<div>
@@ -328,9 +330,11 @@ function FilterableProductTable({ products }) {
328
330
/>
329
331
</div>
330
332
```
333
+
331
334
<p dir="rtl">
332
335
شما میتوانید شروع به دیدن نحوهی رفتار برنامهی خود کنید. مقدار اولیه filterText را از useState('') به useState('fruit') در کد محیط آزمایشی زیر ویرایش کنید. خواهید دید که هر دو متن ورودی جستجو و جدول بهروزرسانی میشوند.
333
336
</p>
337
+
334
338
<Sandpack>
335
339
336
340
```jsx App.js
@@ -456,7 +460,6 @@ td {
456
460
457
461
</Sandpack>
458
462
459
-
Notice that editing the form doesn't work yet. There is a console error in the sandbox above explaining why:
460
463
<p dir="rtl"> توجه کنید که هنوز ویرایش فرم کار نمیکند. یک خطا در کنسول محیط آزمایشی بالا وجود دارد که دلیل آن را توضیح میدهد.</p>
461
464
<ConsoleBlock level="error">
462
465
@@ -476,8 +479,10 @@ function SearchBar({ filterText, inStockOnly }) {
476
479
value={filterText}
477
480
placeholder="Search..."/>
478
481
```
479
-
482
+
<p dir="rtl">
480
483
با این حال، هنوز کدی برای پاسخ به اقدامات کاربر مانند تایپ کردن اضافه نکردهاید. این مرحله آخر شما خواهد بود.
484
+
</p>
485
+
481
486
## Step 5: Add inverse data flow {/* step-5-add-inverse-data-flow */}
482
487
<p dir="rtl">
483
488
در حال حاضر برنامهی شما با پراپها و استیتها که از بالا به پایین سلسلهمراتب بهخوبی رندر میشود. اما برای تغییر استیت بر اساس ورودی کاربر، شما نیاز به پشتیبانی از جریان داده به سمت دیگر دارید: کامپوننتهای فرم (form components) که در عمق سلسلهمراتب هستند باید استیت را در FilterableProductTable بهروزرسانی دهنده.
0 commit comments