検索
に質問 React でタグ付けするためにアップロードされたファイルを選択できない

0
<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>
Your Answer
提出する

2 件の回答
0

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

リーリー
2023-08-16 14:23:10

提出する

0

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

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

リーリー

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

リーリー
2023-08-16 14:11:16

提出する

Hot Tools

vc9-vc14 (32+64 ビット) ランタイム ライブラリ コレクション (以下のリンク)

vc9-vc14 (32+64 ビット) ランタイム ライブラリ コレクション (以下のリンク)

phpStudy のインストールに必要なランタイム ライブラリのコレクションをダウンロードします。

VC9 32ビット

VC9 32ビット

VC9 32 ビット phpstudy 統合インストール環境ランタイム ライブラリ

PHP プログラマー ツールボックスのフルバージョン

PHP プログラマー ツールボックスのフルバージョン

プログラマ ツールボックス v1.0 PHP 統合環境

VC11 32ビット

VC11 32ビット

VC11 32ビットphpstudy統合インストール環境ランタイムライブラリ

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい