Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

130
Visualizações
Exclusión mutua con UseEffect

Tengo un componente con algunos estados diferentes: todos los estados son vistas separadas de un objeto y no son mutuamente excluyentes.

Imagine una clase con una docena de escolares: todos tienen características que describo con estados: color de ojos, color de cabello, género, etc.

Entonces, puedo seleccionar 'todos los eruditos con cabello castaño Y hombres' o 'todos con ojos azules y mujeres' y así sucesivamente.

Así que tengo todos estos estados que actúan como filtros.

Pero hay otro estado, digamos state1, que representa a un erudito específico, digamos 'John Park' o 'Sarah Fawcett'.

Cuando este filtro está activado, solo hay una respuesta posible, y todos los demás filtros desaparecen.

 const [specificPerson,setSpecificPerson]=useState(false); const [hairColor,setHairColor]=useState(false); const [eyeColor,setEyeColor]=useState(false); const [gender,setGender] = useState(false); const allScholars = [array of all scholars]; const [selectedScholars, setSelectedSCholars] = useState([]);

entonces tengo 2 useEffect:

 useEffect(() => { setHairColor(false); setEyeColor(false); setGender(false); }, [specificPerson] ) useEffect(() => { set list = []; if (hairColor || eyeColor || gender) { list.add(allScholars.filter (byHairColor) list.add(allScholars.filter (byEyeColor) list.add(allScholars.filter (byGender) } else { list.add(specificPerson); setSelectedScholars(list.unique); }, [allScholars, selectedScholars, specificPerson, hairColor, eyeColor, gender, setSelectedScholars] ) return <>selectedScholars.map(each .....) </>

ahora, el estado actual de mi aplicación es el siguiente:

 hairColor = brown eyeColor = false gender = false specificPerson = false

Todos los eruditos con cabello castaño se recopilan en los eruditos selectedScholars y luego se rendered .

Luego, ocurre el evento setSpecificPerson("John Doe") . "John Doe" debe ser interpretado y todos los demás eruditos deben desaparecer debido al primer efecto de uso.

Lo que realmente sucede es solo otra película:

  1. el primer efecto de uso se dispara debido a una persona specificPerson
  2. luego, el segundo useEffect se dispara debido a specificPerson , pero hairColor aún no ha cambiado y sigue siendo brown , debido a la cola.
  3. no se representa la persona specificPerson .

Espero que este ejemplo sea más realista que el anterior.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda