Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
setState en useEffect con ese estado como dependencia

Tengo un componente principal con un componente modal secundario. el componente padre tiene una variable de estado en blanco que se pasa al hijo. el componente principal también tiene un div que necesita que se inicialice editorState en el procesamiento para que funcione correctamente. Mi componente secundario tiene un botón que establece stateForDiv con algunos datos para representar en componentes principales div. Necesito el componente principal para configurar el estado del editor cuando el niño actualiza stateForDiv. Naturalmente, traté de usar useEffect con stateForDiv como dependencia. Bueno, cuando useEffect se ejecuta, crea un bucle infinito cuando ejecuto setEditorState. ¿Cómo puedo configurar EditorState cada vez que cambia stateForDiv sin crear un bucle infinito?

 import React, {useState, useEffect} from 'react'; import {convertFromRaw, EditorState } from 'draft-js'; import ChildComponent from './ChildComponent'; const ParentComponent = () => { const [ editorState, setEditorState ] = useState(() => { return EditorState.createEmpty()}) // this must be initialized once on render const [ stateForDiv, setStateForDiv ] = useState() // this state is passed down to child component, when the child component updates this state, we need to setEditorState.. this is my problem, infinite loop in useEffect when using stateForDiv as dependency useEffect(() => { if(stateForDiv) { setEditorState(EditorState.createWithContent( convertFromRaw(stateForDiv))); } else { console.log("false") } }, [stateForDiv]) return ( <div currentContent={editorState} onChange={setEditorState} > </div> <div> <Modal> <ChildComponent setStateForDiv={setStateForDiv} </Modal> </div>

Componente secundario que está configurando el estado de stateForDiv

 const ChildComponent = ({setStateForDiv}) => { return ( <div> <button onClick={() => {setStateForDiv("<p>hi there</p>")} } ></button> </div> ) }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Primer punto, const [ stateForDiv, setStateForDiv ] = useState() esta declaración no es necesaria. Porque solo desea <ChildComponent /> cuyo evento onClick controlará la visualización del componente <div currentContent={editorState} > . Puede <ChildComponent onClick={setEditorState(EditorState.createWithContent(convertFromRaw("<p>hi there</p>")));}/> .

Además, ¿por qué su bucle infinito useEffect? Como su dependencia useEffect es incorrecta. Por lo tanto, debe tener cuidado de cómo usar la dependencia.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!