حل شده

کار نکردن await در setState

بازدید189پست ها1آخرین فعالیت2 سال پیش
0
1

دوستان من در حال یادگیری ریکت هستم و داشتم سرچ میزدم که این سایت روپیدا کردم یه مشکلی و سوال دارم من دیدم تو آموزش از await برای this.setState استفاده کرد اما برای من کار نمیکنه!!!


state = {
  counter: 0,
};

clickHandler = async () => {
  await this.setState({ counter: 2})
  console.log(this.state.counter) 0 !!!!
})

}

ببینید اینجا من await گذاشتم مگه نباید خروجی 2 باشه؟ 0 میده!

1 پاسخ

2

سلام،
متد setState ریکت Promise برنمیگردونه که بخواید از await استفاده کنید. آموزشی که دیدید اشتباه بوده. اما به این روش میتونید استفاده کنید:

this.setState({ counter: 2}, () => {
  console.log(this.state.counter) // 2
})
آخرین ویرایش: 15-12-2021 ???? 16:48، توسط رضا رمضانپور

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.