Too many re-render ?

Par Megastudio, il y a 4 ans


Javascript React

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

Hao, il y a 4 ans

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

Megastudio, il y a 4 ans

j'ai trouvé!

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