سلام من از کد زیر برای گرفتن اطلاعات از 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
تابع fetch که شما ازش استفاده میکنید٬ در واقع Promise-Based هست. یعنی هنگامی که شما این درخواست رو به سرور میفرستید بلافاصله جواب رو دریافت نمیکنید.
حدودا ۲۰۰ms یا بیشتر طول میکشه که سرور به درخواست سما پاسخ بده.
و ۱ سوال: در کجای کدتون از تابع get_details استفاده میکنید؟
جای صحیح برای درخواست اجکس معمولا componentDidMount هست و در برخی موارد هم constructor
@ali.bayat
بله میدونم برای همین گفتم response توی زمان منطقی (شاید همون 200ms) دریافت میشه
ولی لود شدن و به روز شدن اطلاعات که با setState انجام میشه تاخیر داره
منم تابع get_details تا رو داخل componentDidMount استفاده میکنم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟