Tidak dapat memilih fail yang dimuat naik untuk penandaan dalam React
P粉312631645
2023-08-15 20:43:24
<p>Saya menggunakan React untuk membuat muat naik fail. Saya mahu pembolehubah status ditetapkan kepada fail yang dimuat naik (.docx atau .pdf) sebaik sahaja fail dimuat naik. Tetapi apabila memanggil keadaan set, ia muncul sebagai tidak ditentukan. </p>
<pre class="brush:php;toolbar:false;">const [selectedFile, setSelectedFile] = useState(null)
<Input type="file" onChange={handleImageUpload} accept={config.type}/>
const handleImageUpload = (event: { target: { files: any[] } }) =>
fail const = event.target.files[0]
jika (fail) {
if (file.size > config?.fileSize) {
setErrorMessage(config.fileSizeError)
} else if (file?.name.endsWith(config.type)) {
setSelectedFile(fail)
} lain {
reader.readAsDataURL(fail)
}
}
}</pre>
<p>Setelah <kod>setSelectedFile(fail)</kod> ia menunjukkan <kod>selectedFile</kod> Adakah ini sebab khusus mengapa ia berlaku? </p>
Ini kerana apabila anda memanggil atau log masuk ke konsol, status anda masih belum dikemas kini. Anda boleh merakam status anda dalam
useEffect
cangkuk untuk melihatnya apabila dikemas kini. Berikut adalah contoh:Saya rasa kod anda berfungsi seperti yang diharapkan, tetapi apabila anda cuba memanggilnya, keadaan belum dikemas kini lagi.
Menurut React dokumentasi rasmi:
Sekarang, ini adalah tekaan saya, tetapi anda boleh cuba menambah kod ini: