Jadual Kandungan
是一个什么样的bug
如何去修复这个bug
第一步 试图稳定重新
第二步 试图从代码部分找到为什么最小场景会出现问题
第三步 尝试修复(未弄清根本原因的情况下)
第四步 测试bug是否还能重现
第五步 分析bug产生的根本原因
Rumah pembangunan bahagian belakang tutorial php Fix一个随机重现的键盘issue后的思考(ReactNative)

Fix一个随机重现的键盘issue后的思考(ReactNative)

Mar 30, 2018 pm 01:49 PM
issue papan kekunci

本篇文章向大家分享了一个关于Fix一个随机重现的键盘issue后的思考,很有意义,感兴趣的朋友可以看一下

最近花了近一周fix了一个移动端的bug,是个很有趣的bug,大概是这样的。这是一个比较长的故事,有兴趣的可以一直看。

是一个什么样的bug

bug的表现是在一款tablet端应用使用很久之后,第一,在输入框内输入一些内容后,点击done/search,第二,然后点击页面的一些空白区域,软键盘弹出,并且光标focus在最近输入过的输入框内。

此时应用对用户行为的响应会让用户很疑惑和费解。
总结,它有如下几个特点

  • 应用最开始是正常的,不是每次都能重现

  • 一旦出现这个bug,在每一个存在输入框的页面都存在这个问题

  • 重现的场景不明,目前已知是应用使用的越久越容易出现,应用一旦后台关闭病重新启动,又会消失。

如何去修复这个bug

第一步 试图稳定重新

我们先是试图去找一个最小的用户journey去复现这个bug,当时运气比较好,花了大概半天时间找到了一条最小的重现路径。

不说业务背景,简单介绍下应用的页面逻辑。
我们的应用在登录之后有一个home页面,home页面存在三个tab可以滑动或者点击切换,在tab页面之上还存在一些功能菜单,其中某个功能菜单menuA可以点击跳到另一个新的带有一个输入框的页面。
页面大概如下,不是专业ux很丑勿见怪。
Fix一个随机重现的键盘issue后的思考(ReactNative)

我们发现的一条可以快速重现的路径是

  • 登录到达home页面后,反复切换三个tab多次(20次以上)

  • 点击menuA到达一个带输入框的页面

  • 在输入框输入数据,并点击软键盘的done

  • 点击页面空白区域

然后软键盘就出来了。

第二步 试图从代码部分找到为什么最小场景会出现问题

 找到一个最小重现路径之后,我们可以从代码里面找找为什么会出现这个问题。
因为这个bug在应用重启后没有,我们怀疑的方向就定位在render的问题,大概率是出在组件上。
我们中间有几个猜测

  • 自己封装的input组件有问题

  • 三个tabs的滑动组件有问题,滑动组件内的scroll view影响了RN的手势响应系统

最后发现貌似都不是,这个时候和组内另外一个同事pair,她发现在请求比较多的时候容易有问题,中间还怀疑过网络请求处理导致的。这个怀疑其实不大对,但是确实为我们找到了一条路。

我们最后发现我们所有的网络请求都在请求结果返回之前在页面出现一层蒙版mask以及一个类似web里面spinner(在RN里面是ActivityIndicator)的loading提示符号,这个部分是会影响页面render的。
而把这部分去掉(在请求到达之前不出现蒙层),这个bug就没有了,这个发现当时还是让人很震惊的以及疑惑的,因为似乎找到了一部分原因但我们还是没搞清楚为什么。

第三步 尝试修复(未弄清根本原因的情况下)

有了这个思路的提示,我们试图尝试修复。按照业务需求,我们不能取消ActivityIndicator的使用,因为给用户适当的提示这个确实很有必要。

我们试图去修改mask的实现,在老的里面我们使用了一个第三方的RN组件react-native-root-siblings来帮助我们在root同级插入一个兄弟元素显示我们的loading提示符号。

一般在发完请求请求结果未到达之前,我们就插入一个新的同级兄弟元素,请求完成后就删除掉它。当时怀疑因为这部分反复的修改页面的元素结构,就把new-destory的逻辑换成了new-update的逻辑,减少了元素的修改。update的时候只是去让ActivityIndicator不出现似乎被hide了。

第四步 测试bug是否还能重现

我们希望通过减少页面元素反复的删除创建,来fix这个bug,结果怎么样呢?
居然神奇的很难复现了,我们很开心,虽然还是没弄懂原因。
后面QA说在真机上还是遇到了几次,让我们更是费解,费解的是出现的概率确实变少了,但为啥还会出现?

第五步 分析bug产生的根本原因

这个时候我们需要了解bug产生的真正原因了。
我们重新回到这个bug的表现,为什么点击空白区域会触发TextInput的focus方法?我们尝试做了这样几件事情。

  • 找出在会触发TextInput的focus的地方

除了在代码逻辑里面少量的通过绑定ref然后触发.focus方法(因为是少量出现,不符合我们这个bug一出现所有input都受影响的情景,快速排除不是这部分原因),我们发现在RN提供的TextInput组件里面也有很多地方会调用到focus方法。


Atas ialah kandungan terperinci Fix一个随机重现的键盘issue后的思考(ReactNative). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menaip garis bawah pada papan kekunci Bagaimana untuk menaip garis bawah sahaja tanpa menaip? Bagaimana untuk menaip garis bawah pada papan kekunci Bagaimana untuk menaip garis bawah sahaja tanpa menaip? Feb 22, 2024 pm 07:46 PM

Laraskan kaedah input kepada bahasa Inggeris dan tahan kekunci Shift dan kekunci tolak. Model tutorial yang boleh digunakan: Sistem Lenovo AIO520C: Windows 10 Edisi Profesional: Analisis Microsoft Office Word 2022 1 Mula-mula semak kaedah input bahasa Cina dan Inggeris dan laraskannya kepada bahasa Inggeris. 2Kemudian tahan kekunci Shift dan kekunci Tolak pada papan kekunci anda pada masa yang sama. 3 Semak antara muka untuk melihat perkataan bergaris. Tambahan: Cara memasukkan garis bawah dengan cepat dalam dokumen Word 1. Jika anda perlu memasukkan garis bawah dalam Word, pilih ruang dengan tetikus, kemudian pilih jenis garis bawah dalam menu fon untuk masuk. Ringkasan/Nota: Pastikan anda menukar kaedah input kepada Bahasa Inggeris sebelum meneruskan, jika tidak, garis bawah tidak boleh berjaya dimasukkan.

Bagaimana untuk membuka menu klik kanan melalui kekunci pintasan Bagaimana untuk membuka menu klik kanan melalui kekunci pintasan Jan 14, 2024 pm 03:12 PM

Apabila tetikus kita kehilangan fungsinya buat sementara waktu, bagaimana menggunakan pintasan papan kekunci untuk membuka menu klik kanan Terdapat dua kaedah Satu ialah menekan kekunci pintasan Shift+F10 untuk melaraskan menu klik kanan, dan satu lagi ialah menggunakan. pintasan papan kekunci antara tetingkap dan kekunci ctrl juga boleh digunakan. Mari kita lihat tutorial khusus di bawah. Kaedah pertama menggunakan pintasan papan kekunci untuk membuka menu klik kanan: 1. Apabila tiada fail dipilih pada desktop komputer, tekan butang yang ditandakan dalam bulatan merah dalam gambar di bawah pada papan kekunci Butang ini adalah butang untuk membuka dengan cepat menu klik kanan. 2. Anda boleh membuka menu klik kanan pada desktop Jika anda perlu memilih item, hanya gunakan tetikus untuk memilihnya. Kaedah kedua 1. Sebenarnya, kita boleh menggunakan kekunci pintasan "Shift+F10". menu klik kanan 2

Bagaimana untuk membaiki papan kekunci Windows 11 tidak menaip masalah Bagaimana untuk membaiki papan kekunci Windows 11 tidak menaip masalah Dec 28, 2023 pm 05:59 PM

Baru-baru ini, beberapa rakan telah menghadapi masalah aksara besar pada papan kekunci win11 Mereka tidak tahu kekunci mana yang perlu ditekan untuk memulihkannya. Kekunci mana yang hendak ditekan untuk pulih apabila menaip tidak boleh dilakukan pada papan kekunci win11 1. Mula-mula, kita tekan kombinasi kekunci "anjakan kiri+alt+numlock" pada papan kekunci. 2. Kemudian, selepas membuka menu yang ditunjukkan di bawah, klik butang "Ya" untuk membolehkan kekunci tetikus. 3. Seterusnya, klik ikon "Start Menu" atau "Search" untuk membuka bar tugas. 4. Selepas itu, masukkan "osk" dalam kotak carian di atas untuk membuka aplikasi papan kekunci pada skrin. 5. Akhir sekali, klik kekunci "numlock" di penjuru kanan sebelah bawah papan kekunci pada skrin. Ps: Jika anda menggunakan komputer riba, maka

Auto-taip papan kekunci pada komputer riba Windows Auto-taip papan kekunci pada komputer riba Windows Feb 19, 2024 pm 05:33 PM

Peranti input komputer seperti papan kekunci dan tetikus memerlukan operasi manusia dan tidak boleh beroperasi secara bebas. Perkara yang sama berlaku untuk pad sentuh dan papan kekunci pada komputer riba Windows. Teks tidak dimasukkan secara automatik, begitu juga tetikus tidak diklik secara automatik. Jika berlaku sesuatu yang luar biasa, pasti ada sebabnya. Jika anda menghadapi masalah auto-taip papan kekunci komputer riba, ikut panduan untuk membetulkannya. Papan Kekunci pada Komputer Riba Windows Menaip Secara Automatik Apabila papan kekunci pada komputer riba Windows anda menaip secara automatik, berikut ialah cara anda boleh membetulkannya. Periksa papan kekunci secara manual Pastikan papan kekunci berfungsi dengan betul Periksa sama ada komputer riba disambungkan dari jauh Periksa sama ada sebarang program autotaip sedang dijalankan Jalankan imbasan perisian hasad Laraskan tetapan papan kekunci Pasang semula pemacu papan kekunci Mari kita ketahui secara terperinci

Bagaimana untuk menyediakan fungsi but papan kekunci pada papan induk GIGABYTE (dayakan mod but papan kekunci pada papan induk GIGABYTE) Bagaimana untuk menyediakan fungsi but papan kekunci pada papan induk GIGABYTE (dayakan mod but papan kekunci pada papan induk GIGABYTE) Dec 31, 2023 pm 05:15 PM

Bagaimana untuk menyediakan permulaan papan kekunci pada papan induk Gigabyte Pertama, jika ia perlu menyokong permulaan papan kekunci, ia mestilah papan kekunci PS2! ! Langkah-langkah tetapan adalah seperti berikut: Langkah 1: Tekan Del atau F2 untuk memasuki BIOS selepas but, dan masukkan mod Lanjutan (Lanjutan) BIOS Papan induk biasa masukkan mod EZ (Mudah) papan induk secara lalai untuk menekan F7 untuk beralih ke mod Lanjutan papan induk siri ROG masukkan BIOS secara lalai (kami menggunakan Bahasa Cina Mudah untuk menunjukkan) Langkah 2: Pilih untuk - [Lanjutan] - [Pengurusan Kuasa Lanjutan (APM)] Langkah 3: Cari pilihan [Bangun dengan papan kekunci PS2] Langkah 4: Pilihan lalai ini Dilumpuhkan Selepas menarik ke bawah, anda boleh melihat tiga pilihan tetapan yang berbeza, termasuk menekan [bar ruang] untuk menghidupkan komputer dan menekan butang kumpulan.

Bagaimana untuk menetapkan butang Copilot pada mana-mana papan kekunci dalam Windows 11 Bagaimana untuk menetapkan butang Copilot pada mana-mana papan kekunci dalam Windows 11 Feb 20, 2024 am 10:33 AM

Papan kekunci komputer Windows 11 yang akan dilancarkan dalam beberapa bulan akan datang akan mempunyai kunci Copilot baharu. Kekunci ini membolehkan pengguna memasuki mod pembantu juruterbang dengan mudah dengan menekan butang yang ditetapkan tanpa menaik taraf PC baharu. Panduan ini akan memperincikan cara menyediakan butang copilot pada mana-mana papan kekunci Windows 11. Microsoft baru-baru ini mengumumkan bahawa mereka telah mencapai kemajuan penting dalam memajukan pemanduan berbantukan kecerdasan buatan. Windows 11 akan menambah kunci Copilot khusus untuk meningkatkan lagi pengalaman pengguna PC. Perubahan perkakasan ini mewakili peningkatan besar pertama kepada papan kekunci Windows PC dalam tiga puluh tahun. Dalam beberapa bulan akan datang, komputer Windows 11 baharu akan menampilkan reka bentuk kunci Copilot baharu pada papan kekunci

Senarai pintasan papan kekunci Win11 Senarai pintasan papan kekunci Win11 Jan 05, 2024 pm 02:46 PM

Sistem win11 mempunyai sejumlah besar pintasan papan kekunci terbina dalam yang membolehkan kami melakukan operasi tertentu dengan cepat. Walau bagaimanapun, ramai pengguna bukan sahaja tidak tahu apa itu pintasan papan kekunci win11, tetapi mereka juga tidak biasa menggunakannya Oleh itu, editor akan membawakan senarai lengkap pintasan papan kekunci win11 kepada anda. Apakah pintasan papan kekunci win11: 1. Kekunci F F1 Tunjukkan bantuan semua F2 Namakan semula item yang dipilih semua F3 Cari fail atau folder semua F10 Aktifkan bar menu dalam program aktif Semua 2. Kekunci Ctrl Ctrl+A Pilih dokumen atau tetingkap Semua item Semua Ctrl+C Salin item yang dipilih Semua Ctrl+D Tambah halaman web pada kegemaran anda Semua Ctrl+J Buka Pengurus Muat Turun Semua Ctrl+L Serlahkan

Produk siri papan kekunci dan tetikus 'Elden's Circle' jenama bersama VGN kini berada di rak: Tema tersuai Lani / Faded One, bermula dari 99 yuan Produk siri papan kekunci dan tetikus 'Elden's Circle' jenama bersama VGN kini berada di rak: Tema tersuai Lani / Faded One, bermula dari 99 yuan Aug 12, 2024 pm 10:45 PM

Menurut berita dari laman web ini pada 12 Ogos, VGN melancarkan siri papan kekunci dan tetikus "Elden Ring" berjenama bersama pada 6 Ogos, termasuk papan kekunci, tetikus dan pad tetikus, yang direka dengan tema tersuai bagi siri Lani/Faded One produk Ia telah diletakkan di JD.com, berharga dari 99 yuan. Maklumat produk baharu jenama bersama yang dilampirkan pada tapak ini adalah seperti berikut: Papan Kekunci VGN丨Elden Law Ring S99PRO Papan kekunci ini menggunakan cangkerang aloi aluminium tulen, ditambah dengan struktur penyenyap lima lapisan, menggunakan struktur spring daun GASKET, mempunyai satu PCB berslot kunci, dan bahan PBT tinggi asal, satah belakang diperibadikan aloi aluminium menyokong sambungan tiga mod dan teknologi kependaman rendah SMARTSPEEDX, ia boleh menguruskan berbilang peranti dalam satu hentian, bermula pada 549 yuan; VGN丨Elden French Ring F1PROMAX tetikus wayarles tetikus

See all articles