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

157
Views
las filas de la ventana de reacción llaman a useState

Estoy tratando de representar un componente con estado dentro de las filas de la ventana de reacción (usando FixedSizeList), pero su estado ( useState ) no se mantiene cuando se vuelven a procesar, por lo que se reinicia cada vez que me desplazo hacia ellos. Esto tiene sentido porque se están desmontando, pero ¿hay alguna forma de evitar que se vuelvan a renderizar a través de memo o useCallback ? He visto algunos ejemplos de evitar re-renderizaciones, pero no puedo hacer que funcionen. En este ejemplo de caja de arena que hice, intenté memorizar un componente ( <InnerRow> ) que solo toma un único accesorio, pero parece volver a representarlo independientemente de llamar a memo .

¿No estoy memorizando correctamente o estoy haciendo algo mal? ¿O esto no es posible, y mi única solución es mantener el estado de alguna otra manera, fuera del componente de fila?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede probar usando useReducer en lugar de memo . Reducer lo ayudará a mantener el estado de los componentes seleccionados incluso si no están montados en dom.

 function reducer(state, action) { switch (action.type) { case "add": { return { isOn: [...state.isOn, action.payload] }; } case "remove": { const newArray = [...state.isOn]; const newState = newArray.filter((a) => a !== action.payload); return { isOn: newState }; } default: throw new Error(); } }

Puede consultar mi solución aquí: https://codesandbox.io/s/keen-mclaren-nenc9v?file=/src/App.js

about 4 years ago · Juan Pablo Isaza Report

0

Después de investigar un poco más, creo que la respuesta a mi pregunta es: No , no es posible. ¿Dónde viviría exactamente esa memoria si ya no está montada? Tendré que mantener el estado en otro lugar, como en el componente principal o mediante el estado global.

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!