Я создаю составную форму в React. Все работает нормально, кроме поля ввода файла.
Ниже приведен код, что я пытаюсь сделать.
<div className="col-lg-6 col-md-12">
<form encType="multipart/form-data" onSubmit={this.onSubmit}>
<div className="form-group">
<div className="custom-file mb-3">
<input
type="file"
className="custom-file-input"
id="gerberFile"
onChange={this.handleFileChange}
/>
<label className="custom-file-label">
{gerberFileLabel}
</label>
</div>
{errors.gerberFile && (
<div className="alert alert-danger">
{errors.gerberFile}
</div>
)}
</div>
</div>
</div>
handleFileChange = e => {
const file = e.target.files[0];
if (!(file.name.includes(".zip") || file.name.includes(".rar"))) {
const errors = { ...this.state.errors };
errors.gerberFile = "Gerberfiles are only allowed in .zip or .rar";
this.setState({ errors });
} else {
console.log(`file ? ${JSON.stringify(file)}`);
const formFields = { ...this.state.formFields };
formFields.gerberFile = file;
this.setState({ formFields });
this.setState({ gerberFileLabel: file.name });
}
}
Странная часть заключается в том, что я могу использовать имя файла console.log и использовать его в качестве заполнителя. Однако всякий раз, когда я пытаюсь создать объект console.log File
, я получаю пустой объект {}.
Что именно я делаю неправильно здесь? Я прошел через несколько руководств, кажется, все делают одно и то же, и, честно говоря, я не смог найти его на SO.
Я был бы очень признателен, если бы кто-нибудь мог мне помочь.
name="file"
к входному файлу? - person Chunky Chunk   schedule 17.04.2020onChange={e =>console.log(
file: ${JSON.stringify(e.target.files[0])})}
он все еще регистрирует объект emtpy - person MQ.   schedule 17.04.2020