Baiki State yang Basi
15 minitPertengahanReact
Sebuah kedai kuih mengira pesanan kotak. Tiga bug telah dilaporkan, semuanya berpunca daripada sebab yang sama:
- +3 family pack hanya menambah 1.
- Klik +1 online dua kali dengan cepat hanya menambah 1 selepas setengah saat.
- Klik +1 online, kemudian terus +3 family pack: kiraan menunjukkan 3, kemudian turun ke 1 apabila pesanan online tiba.
Dijangka: setiap kotak dikira. Dalam kes 3, kiraan akhir ialah 4.
Kekangan
- Kekalkan id
count,add-one,add-three,add-later, dan kekalkan tempoh 500 ms untuk pesanan online. - Teruskan menggunakan
useState— pembaikannya ialah pada cara anda memanggil setter, bukan dengan menambah state lain.
Baiki pengira pesanan supaya +3 family pack benar-benar menambah 3, dan pesanan online yang tiba selepas tempoh singkat tidak pernah hilang — walaupun butang lain diklik pada masa itu. Guna kemas kini state berbentuk function.
Semakan
- +3 family pack menambah 3
- +1 box masih menambah 1
- Dua pesanan online pantas kedua-duanya tiba
- Pesanan online + family pack = tambah 4
Pratonton
Output konsol daripada kod anda akan dipaparkan di sini.