React でタグ付けするためにアップロードされたファイルを選択できない
P粉312631645
2023-08-15 20:43:24
<p>React を使用してファイルのアップロードを作成しています。ファイルがアップロードされるとすぐに、アップロードされたファイル (.docx または .pdf) にステータス変数が設定されるようにしたいと考えています。ただし、set state を呼び出すと、未定義として表示されます。 </p>
<pre class="brush:php;toolbar:false;">const [selectedFile, setSelectedFile] = useState(null)
<Input type="file" onChange={handleImageUpload} accept={config.type}/>
const handleImageUpload = (イベント: { ターゲット: { ファイル: any[] } }) => {
const ファイル =event.target.files[0]
if (ファイル) {
if (file.size > config?.fileSize) {
setErrorMessage(config.fileSizeError)
else if (file?.name.endsWith(config.type)) {
setSelectedFile(ファイル)
} それ以外 {
Reader.readAsDataURL(ファイル)
}
}
}</pre>
<p><code>setSelectedFile(file)</code> が発生すると、<code>selectedFile</code> が未定義として表示されます。これが起こった具体的な理由はありますか? </p>
これは、コンソールを呼び出したりログインしたときにステータスが更新されていないためです。
リーリーuseEffect
フックにステータスを記録すると、更新時にステータスを表示できます。以下に例を示します:コードは期待どおりに動作すると思いますが、コードを呼び出そうとしたとき、状態はまだ更新されていません。
React 公式ドキュメントによると :
リーリーこれは私の推測ですが、次のコードを追加してみてください:
リーリー