راکت

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

2 پاسخ

سلام من از کد زیر برای گرفتن اطلاعات از 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 بشه توی صفحه؟
ممنون

mjsolgi
mjsolgi
@mjsolgi
ثبت پرسش جدید

پاسخ‌ها

2
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

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

mjsolgi
mjsolgi
@mjsolgi

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

شاید پاسخ شما همین‌جا باشد

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

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