Rumah > Soal Jawab > teks badan
P粉7656846022023-08-16 09:53:17
Apabila anda menghubungi handleSearchChange
然后调用setCountriesToShow
untuk mengemas kini status:
setCountriesToShow( countries.filter(country => country .name .common .toLowerCase() .includes(event.target.value.toLowerCase()) ) )
Anda telah mencetuskan penyampaian semula. Nilai keadaan yang baru dikemas kini hanya akan tersedia pada pemaparan semula yang akan datang, itulah sebabnya ia ketinggalan.
Jika anda ingin menggunakan nilai di bawah, anda perlu menyimpannya dalam pembolehubah terlebih dahulu:
const handleSearchChange = (event) => { const newCountriesToShow = countries.filter(country => country .name .common .toLowerCase() .includes(event.target.value.toLowerCase()) ) setCountriesToShow(newCountriesToShow) setSearch(event.target.value) if (event.target.value.trim().length === 0) { setNotificationMessage(null) setShowShearched(false) } else if (newCountriesToShow.length <= 10) { setNotificationMessage(null) setShowShearched(true) } else { setNotificationMessage('list too long') setShowShearched(false) } }