Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

160
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda