Shubham Sharma
Shubham Sharma

Reputation: 381

How to set formik values

index.js

const [request, setRequest] = useState({
    product_name: '',
    categoryId: '',
    description: '',
    link: ''
});

const loadRequest = async () => {
    const res = await Axios.get(`http://localhost:3001/dashboard/${id}`, {
        headers: headers
    });
    let _request = res.data.response
    setRequest({
        product_name: _request.product_name,
        categoryId: _request.categoryId,
        description: _request.description,
        link: _request.link
    })
};

const validationSchema = Yup.object({
    product_name: Yup.string().trim().required('Product name is required'),
    description: Yup.string().trim().required('Description is required'),
    category: Yup.string().required('Category is required')
});

const formik = useFormik({
    initialValues: request,
    onSubmit: handleSubmit,
    validationSchema: validationSchema
});
console.log(formik.values)  =====>>> Here I am not getting data
console.log(request)  ==========>>> Here I am getting data

I am getting values in the request state but when I set values in initial values in formik it is not showing data. Can someone tell me what am I missing here?

Upvotes: 0

Views: 82

Answers (2)

Sajjad Ali
Sajjad Ali

Reputation: 11

//you can add the reset form in your onSubmit. This works for me. //e.g. onSubmit: (values, { resetForm }) => { resetForm({ values: "" }); },

Upvotes: 0

Shubham Sharma
Shubham Sharma

Reputation: 381

Just added enableReinitialize: true and it worked

Upvotes: 1

Related Questions