یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
mjsolgi
6 سال پیش توسط mjsolgi مطرح شد
2 پاسخ

کند بودن load اطلاعات در صفحه در react native

سلام من از کد زیر برای گرفتن اطلاعات از api استفاده میکنم

get_detail(URL) {
        fetch(URL,{
                method: 'POST',
          headers: {
                       'Authorization': "Token "+ this.state.token,
                       'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
                       'accept-language': this.state.lan

                  },
                       body:'id='+this.state.id
          })
          .then((response) => response.json())
          .then((responseJson) => {

                 this.setState({
                  refreshing: false,
                  bookmarkIcon:`${responseJson.is_booked ? 'bookmark' : 'bookmark-border'}`,
                  likeIcon:`${responseJson.is_liked ? 'favorite' : 'favorite-border'}`,
                  dataIT: responseJson,
                  });

                this.parsResponse(responseJson);

          })
          .catch((error) => {
                      Alert.alert("error_get_detail","" + error);
          });
     }

حالا responseJson توی زمان منطقی دریافت میشه ولی setState خیلی دیر انجام میشه و با تاخیر خییییلی زیاد مقدار جدید Icon ها اعمال میشه
چیکار باید کنم که سریع تر اطلاعات load بشه توی صفحه؟
ممنون


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
0

@mjsolgi
تابع fetch که شما ازش استفاده میکنید٬ در واقع Promise-Based هست. یعنی هنگامی که شما این درخواست رو به سرور میفرستید بلافاصله جواب رو دریافت نمیکنید.
حدودا ۲۰۰ms یا بیشتر طول میکشه که سرور به درخواست سما پاسخ بده.

و ۱ سوال: در کجای کدتون از تابع get_details استفاده میکنید؟
جای صحیح برای درخواست اجکس معمولا componentDidMount هست و در برخی موارد هم constructor


mjsolgi
@mjsolgi 6 سال پیش آپدیت شد
0

@ali.bayat
بله میدونم برای همین گفتم response توی زمان منطقی (شاید همون 200ms) دریافت میشه
ولی لود شدن و به روز شدن اطلاعات که با setState انجام میشه تاخیر داره
منم تابع get_details تا رو داخل componentDidMount استفاده میکنم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام