when i use setValues() function on handleInputChange i get this error:
code:
import React, { useState, useEffect } from "react";
const useForm = (initialFieldValues) => {
const { values, setValues } = useState(initialFieldValues);
const handleInputChange = (e) => {
const { name, value } = e.target;
const fieldValue = { [name]: value };
this.setValues({
...values,
...fieldValue,
});
};
return {
values,
setValues,
handleInputChange,
};
};
export default useForm;
how can i solve this error? any response will be appreciated
In class component you would use this.setValues
, but in functional components you can directly use setValues
without this
keyword.
Change:
this.setValues({
...values,
...fieldValue,
});
To:
setValues({
...values,
...fieldValue,
});
Also useState
returns an array, so you would use it like this:
const [ values, setValues ] = useState(initialFieldValues);
Please go through the documentation: https://reactjs.org/docs/hooks-state.html
import React, { useState, useEffect } from "react";
const useForm = (initialFieldValues) => {
const [ values, setValues ] = useState(initialFieldValues);
const handleInputChange = (e) => {
const { name, value } = e.target;
const fieldValue = { [name]: value };
setValues({
...values,
...fieldValue,
});
};
return {
values,
setValues,
handleInputChange,
};
};
export default useForm;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.