آموزش جاوااسکریپت › انجمن ها › react native › مشکل در عملکرد back سخت افزاری در react native
- این موضوع 5 پاسخ، 2 کاربر را دارد و آخرین بار در 3 سال، 2 ماه پیش بدست مهدی حسن زاده بهروزرسانی شده است.
-
نویسندهنوشتهها
-
محمد مهدیمشارکت کننده
سلام. وقت بخیر
من برای بعضی از کامپوننت های اپلیکیشن عملکرد دکمه back سخت افزاری رو به صورت دستی تغییر دادم که اگر کاربر دکمه back رو زد یه سری کارها انجام بشه. به صورت زیر
JavaScript12345async componentDidMount() {BackHandler.addEventListener('hardwareBackPress', this.handleBackButton);}توی تابع handleBackButton هم دستورات مورد نظر رو نوشتم.
مشکلی که وجود داره اینه که وقتی توی یه کامپوننت هستم و دکمه back بزنم درست کار میکنه. اما اگر برم به یه صفحه ی دیگه و مجددا برگردم به همین صفحه (مثلا با دستور goBack) دیگه کار نمیکنه. توی ری اکت 59 چنین مشکلی نداشتم. ولی الان با ری اکت 62 به مشکل خوردم
مهدی حسن زادهمدیرکلسلام شما باید در componentWillonMount بیاید backHandler رو remove کنید
https://reactnative.dev/docs/backhandlerمحمد مهدیمشارکت کنندهاین کار رو هم کردم از قبل و توی کدهام همیشه همین روش رو پیاده کردم.
ولی اپلیکشنم که 59.9 بود رو آپگرید کردم به ورژن 62.2 و بعد از اون به مشکل خورده
وگرنه قبلا داشت کار میکردمهدی حسن زادهمدیرکلتو issue ها یک نگاهی بندازید ببینید کسی چنین مشکلی نداشته.اگر نداشت خودتون یک issue چدید باز کنید و این مشکل رو بیان کنید.
البته سعی کنید همیشه یک نسخه پایین تر از آخرین نسخه استفاده کنید .چون در آپدیت های جدید همیشه یک سری مشکلات وجود دارهمحمد مهدیمشارکت کنندهسلام و عرض ادب
یک چیزی رو متوجه شدم. اپلیکشن من با استفاده از react navigation bottom tab دارای 5 تا تب مختلف هست. (خانه،دسته بندی ها،جستجو،سبد خرید و پروفایل)
برای دکمه back توی قسمت دسته بندی ها یه سری کدها نوشتم که اجرا بشه و بر اساس یه شرایطی برگرده به خانه
حالا وقتی از دسته بندی ها بک میزنم و برمیگردم به خانه و دوباره بک میزنم دوباره همون قطعه کدی که برای دکمه بک تو صفحه دسته بندی ها نوشتم اجرا میشه. یعنی با اینکه تو صفحه خانه قرار دارم ولی انگار هنوز تو صفحه دسته بندی ها هستم. واسه همین دکمه بک صفحه ی خانه عمل نمیکنه و از نرم افزار خارج نمیشه
نکته ی دیگه اینکه اولین بار که اپلیکیشن اجرا میشه دکمه ی بک صفحه خانه درست کار میکنه و از نرم افزار میاد بیرون. فقط اگر برم تو دسته بندی ها و برگردم از کار می افته
و نکته ی آخر اینکه تمام این عملکرد دکمه های بک صفحات در صورتی که همه صفحات توی یک stack باشن درست عمل میکنن. از وقتی اپلیکیشن رو تبی کردم این مشکل به وجود اومده
مهدی حسن زادهمدیرکلآیا هر کدوم از این تب ها خود یک stack هستن؟
شما باید هر کدوم از این تب ها رو درون یک stcak قرار دهید و stack ها رو به عنوان تب معرفی کنید -
نویسندهنوشتهها