Langkau ke kandungan
WANCODE
EN

Baiki State yang Basi

15 minitPertengahanReact

Sebuah kedai kuih mengira pesanan kotak. Tiga bug telah dilaporkan, semuanya berpunca daripada sebab yang sama:

  1. +3 family pack hanya menambah 1.
  2. Klik +1 online dua kali dengan cepat hanya menambah 1 selepas setengah saat.
  3. 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.

Langkah 1 daripada 1