Formik не поддерживает загрузку файлов по умолчанию, но вы можете попробовать следующее
<input id="file" name="file" type="file" onChange={(event) => {
setFieldValue("file", event.currentTarget.files[0]);
}} />
Здесь "file"
представляет ключ, который вы используете для хранения файла
И при отправке вы можете получить имя файла, размер и т. Д. Для файла, используя
onSubmit={(values) => {
console.log({
fileName: values.file.name,
type: values.file.type,
size: `${values.file.size} bytes`
})
Если вы хотите установить файл в состояние компонентов, вы можете использовать
onChange={(event) => {
this.setState({"file": event.currentTarget.files[0]})};
}}
Согласно вашему коду, вы должны обрабатывать загрузку файла, как показано ниже
В AccountInfo добавить функцию для обработки загрузки файлов
handleFileUpload = (event) => {
this.setState({WAHTEVETKEYYOUNEED: event.currentTarget.files[0]})};
}
И передать ту же функцию компоненту Step1, как показано ниже
<Step1
currentStep={this.state.currentStep}
handleChange={this.handleChange}
file= {this.state.image}
handleFileUpload={this.handleFileUpload}
/>
В Step1 Component, куда вы загружаете файл, измените ввод как
<input id="file" name="file" type="file" accept="image/*" onChange={props.handleFileUpload}/>
Если вам необходимо предварительно просмотреть загруженное изображение, то вы можете создать BLOB-объект и передать его в качестве источника для изображения, как показано ниже
<img src={URL.createObjectURL(FILE_OBJECT)} />