سلام. من دارم با استفاده از یک 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
شما هر زمان url تغییر میکنه دوباره باید request جدید بزنید تا اطلاعات جدید براتون بر اساس پارامتر سرچ برگرده !
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟