Hochgeladene Dateien können nicht zum Markieren in React ausgewählt werden
P粉312631645
2023-08-15 20:43:24
<p>Ich verwende React, um einen Datei-Upload zu erstellen. Ich möchte, dass die Statusvariable auf die hochgeladene Datei (.docx oder .pdf) gesetzt wird, sobald die Datei hochgeladen wird. Beim Aufruf von set state wird es jedoch als undefiniert angezeigt. </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[] } }) =>
const file = event.target.files[0]
if (Datei) {
if (file.size > config?.fileSize) {
setErrorMessage(config.fileSizeError)
} else if (file?.name.endsWith(config.type)) {
setSelectedFile(file)
} anders {
reader.readAsDataURL(Datei)
}
}
}</pre>
<p>Sobald <code>setSelectedFile(file)</code> auftritt, wird <code>selectedFile</code> Ist das ein konkreter Grund, warum es passiert ist? </p>
这是因为当您在控制台中调用或记录它时,您的状态尚未更新。您可以在
useEffect
钩子中记录您的状态,以便在更新时查看它。以下是一个示例:我认为你的代码按预期工作,但是当你尝试调用它时,状态还没有被更新。
根据React官方文档:
现在,这是我的猜测,但你可以尝试添加这段代码: