React でタグ付けするためにアップロードされたファイルを選択できない
P粉312631645
P粉312631645 2023-08-15 20:43:24
0
2
476
<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>
P粉312631645
P粉312631645

全員に返信(2)
P粉523335026

これは、コンソールを呼び出したりログインしたときにステータスが更新されていないためです。 useEffect フックにステータスを記録すると、更新時にステータスを表示できます。以下に例を示します:

リーリー
いいねを押す +0
P粉760675452

コードは期待どおりに動作すると思いますが、コードを呼び出そうとしたとき、状態はまだ更新されていません。

React 公式ドキュメントによると :

リーリー

これは私の推測ですが、次のコードを追加してみてください:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート