💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ علیرضا بابایی
مشکل در تمرین
مجتبی سوری حل شده توسط مجتبی سوری

سلام استاد 

من مراحل فیلم رو دقیق بررسی کردم و سعی کردم خودم پیاده سازی کنم ولی به ارور زیر خودم و نمیدونم مشکل از کجاست ممنون میشم لطفا بررسی کنید.

 

https://codesandbox.io/s/pedantic-maxwell-uyp1j?file=/src/App.js

سلام

ارور خیلی شفاف 

TypeError: this.state.info is null

داره میگه که info دارای مقدار null و شما میخوای در خط 39 مقدار city رو از روی اون بخونی بنابراین به ارور میخوری

دلیلشم این هست که عملیات دریافت اطلاعات از سرور به صورت async داره انجام میشه و اولین باری که رندر صورت میگیره هنوز اطلاعات از سرور دریافت نشده و درواقع چیزی داخل state هنوز قرار نگرفته!

راه حلی زیاد داره میتونی مثلا داخل state یه مقدار قرار بدی و ببینی که آیا در حالت loading هستی یا نه  و تا جایی که یادم هست مشابه این مورد رو انجام دادم!

میتونی چک بکنی که آیا info مقدار داره یا نه مثلا:

this.state.info?.city

و کلی روش دیگه که هر کدوم راحت باشی میتونی انجام بدی

بهترین پاسخ
مجتبی سوری ۰۷ خرداد ۱۴۰۰، ۱۰:۰۹

این مشکل برای من برطرف نمیشه حتی زمانی که کدهای شما رو اجرا می‌کنم و دقیقا همین خطا رو میده!

می‌تونم بپرسم چرا مال شما درست اجرا میشه ولی برای من نه ؟

 

this.state.info?.city

این روش هم وقتی تست می‌کنم بازم این خطا رو میده

_this$state$info.flag is undefined
رضا شاکری ۱۵ فروردین ۱۴۰۳، ۱۸:۲۸

حل شد !

نباید spinner رو حذف می‌کردم

رضا شاکری ۱۶ فروردین ۱۴۰۳، ۱۲:۱۹