درود استاد وقت بخیر
در فیلم 98 درون تابع contactSearch ، یه همچین کدی نوشتین :
const contactSearch = (query) => {
if (!query) {
return setFilteredContacts([...contacts]);
}
...
}
سوالم اینه که دستور return در این کد چگونه عمل میکنه؟
چون ما در حالت عادی که نمیخواییم چیزی برگشت بدیم بلکه میخواییم صرفا مقدار استیت setFilteredContacts رو تغییر بدیم.
شما صرفا برای انجام نشدن سایر کدهای بعدی درصورت درست بودن شرط ، این return رو نوشتین؟
سلام دوست من
درست متوجه شدی. این return برای جلوگیری از اجرای ادامه کد استفاده شده هست. یعنی :
اگر query خالی باشه (!query) ما لیست کامل مخاطبین رو نمایش میدیم. و چون دیگه نیازی به ادامه اجرای تابع نیست با return تابع رو همونجا متوقف میکنیم.
هدف اصلی از این return خروج از تابع هست نه بازگرداندن مقداری برای استفاده.
میتونستیم بنویسیم :
if (!query) {
setFilteredContacts([...contacts]);
return;
}
به این شکل هم بنویسیم هیچ تفاوتی در خروجی ایجاد نمیشه.
پس در کل این return برای قطع ادامه اجرای تابع استفاده شده و چون setFilteredContacts آخرین کاریه که باید در اون مسیر انجام بشه با return همون تابع رو تموم کردیم.
حالا اگر میخواستیم کمی شفافتر بنویسیم به شکل بالا که نوشتم هم میتونیم پیاده سازی کنیم. اما هر دو درست و قابل فهم هستن.
موفق باشی