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

127
Views
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
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!