To use react-dropzone with react-hook-form, we can follow these steps:
Here’s a code snippet demonstrating how to achieve this:
import React from 'react'; import { useForm, Controller } from 'react-hook-form'; import { useDropzone } from 'react-dropzone'; const FileInput = ({ control, name }) => { return ( <Controller control={control} name={name} render={({ field: { onChange, onBlur, value } }) => ( <Dropzone onDrop={onChange}> {({ getRootProps, getInputProps }) => ( <div {...getRootProps()} style={{ border: '1px solid black', padding: '20px' }}> <input {...getInputProps()} onBlur={onBlur} /> <p>Drag 'n' drop some files here, or click to select files</p> {value && value.map((file) => ( <div key={file.path}>{file.path}</div> ))} </div> )} </Dropzone> )} /> ); }; const App = () => { const { control, handleSubmit } = useForm(); const onSubmit = (data) => { console.log(data); // You will see the File object here }; return ( <form onSubmit={handleSubmit(onSubmit)}> <FileInput control={control} name="files" /> <button type="submit">Submit</button> </form> ); }; export default App;
Work with our skilled React developers to accelerate your project and boost its performance.
Hire Reactjs Developers