Bonjour,

je cherche à passer les données d'un formulaire dans une variable en utilisant le useState

const Initial = () => {
    const [ data, setData ] = useState(''); // ici je récupère les valeurs du formulaire
    const [ imageSrc, setImageSrc ] = useState(); // form image source

    const [ title, setTitle ] = useState(''); la variable title, vide au départ

    const { register, handleSubmit, formState: { errors } } = useForm();
    const onSubmit = (data) => setData(data); je set les data

    je récupère bien mon tableau:

    Object { title: "Titre du menu", category: "Catégorie", describe: "description" }
​
category: "Catégorie"
​
describe: "description"
​
title: "Titre du menu"
​
<prototype>: Object { … }

    setTitle(data.title); // et ici j'essaie par exemple de mettre le contenu titre dans la variable title

Ce que je veux

Je veux passer ce que j'obtiens dans le formulaire dans des variables, afin d'écrire les données en bdd.

Ce que j'obtiens

Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.

et quand j'essaie d'utiliser un useEffect la variable data deviens Undefined.

comment faire ? et dois-je utiliser un useCallback pour éviter les rerenders ? si vous voulez bien m'expliquer un peu, ça serait sympa !

Merci de votre aide !

2 réponses


je crois qu cest le sujet du chapitre 15 sur les videos mais je suis pas sur de savoir comment faire...je dirais

j'ai trouvé!


    useEffect(
        () => {
            if (data) {
                setTitle(data.title);
                setCat(data.category);
                setDesc(data.describe);
            }
        },
        [ data ]
    );