Parastoo Ebrahimi
5 سال پیش توسط Parastoo Ebrahimi مطرح شد
1 پاسخ

آپدیت لیست

سلام. من دارم با استفاده از یک apiبه اسم zomato که مربوط به رستوران ها هست یک وب اپلیکیشنیو طراحی میکنم و این هم عکسشه: http://s6.picofile.com/file/8381975400/zomato.JPG
تا جایی که توی عکس میبینید پیش رفتم. حالا مشکلی که دارم اینه که وقتی از Cuisine مقداری انتخاب بشه باید sidebar با توجه به اون مقدار آپدیت بشه. هر cuisine یک id داره که من با اون id میتونم url رو آپدیت کنم(توی خود zomato گفته که میتونین id غذاها رو با کاما جدا کنید با توجه به این من url رو آپدیت کردم). حالا مشکلم اینجاست که وقتی url آپدیت میشه ولی sidelist هیچ آپدیتی نمیشه. باید اونه توی lifecycle دیگه ای بزارم یا مشکل دیگه ای داره؟ کد زیر مربوط به گرفتن url هست و در قسمت cuisine من اومدم با checkbox idای که کلیک شده آپدیتش کردم.

 handleLoadMore(){
    axios.get(`https://developers.zomato.com/api/v2.1/search?entity_id=297&entity_type=city&start=${this.state.nextPage}&cuisines=${this.state.SelectedCuisine}&q=Adelaide&apikey=07f3b7cdf9aab5e68f4dfbb516560b4d`).then(
      response => {

        this.setState(prevState =>({
          resturants:[...prevState.resturants ,...response.data.restaurants],
          //resturants: response.data.restaurants,
          hasMore: response.data.results_found == response.data.results_start ? false : true,
          nextPage: response.data.results_start + 20,

        }))

      }

    )
  }

کد زیر هم اطلاعت رو میفرسته به کامپوننت sidebar برای نمایش:

<InfiniteScroll className="sideBar cursor"
            pageStart={20}
            loadMore={this.handleLoadMore.bind(this)}
            hasMore={this.state.hasMore}
            loader={<div className="loader" key={0}>Loading ...</div>}
          >
             {this.state.resturants.map((item, index) =>
                 <Sidebar key={index} name={item.restaurant.name} id={item.restaurant.id}
                 clicked={() => { this.selectRestaurant(item.restaurant.id) }} />)}

          </InfiniteScroll>

ممنون میشم راهنمایی کنید
@hesammousavi
@ali.bayat
@davoodkhany


ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
0

شما هر زمان url تغییر میکنه دوباره باید request جدید بزنید تا اطلاعات جدید براتون بر اساس پارامتر سرچ برگرده !


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

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