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

197
Views
REACCIONAR: Cómo intercambiar elementos en la lista de tareas por sus prioridades

Estoy haciendo una lista de tareas y quiero hacer una función que intercambie tareas por sus prioridades. Por ejemplo:

  1. Ir al gimnasio

  2. aprender reaccionar

    Quiero hacer un botón que mueva los elementos hacia arriba y hacia abajo y obtenga:

    1. aprender reaccionar

    2. Ir al gimnasio

Tengo una función que estoy bastante seguro de que funciona correctamente, pero creo que hay un problema en <div> donde uso esta función

 const moveUpDown = (currentIndex, nextIndex) =>{ const newCounts = [...todos] const currentCounts = newCounts[currentIndex] const previousCounts = newCounts[nextIndex] newCounts[currentIndex] = previousCounts newCounts[nextIndex] = currentCounts setTodos(newCounts) }

Esta es mi devolución:

 function ToDo(props) { return ( <div key={props.todo} className="item-todo"> <div className={props.todo.complete ? "item-text strike" : "item-text"} onClick={() => props.toggleTask(props.todo.id)} > {props.todo.task} </div> <div className="item-delete" onClick={() => props.removeTask(props.todo.id)}> X </div> // Lines below I'm using function moveUpDown <div className="item-moveUpDown" disabled = {props.todo === 0} onClick={() => props.moveUpDown(props.todo, props.todo - 1)} > Up </div> <div className="item-moveUpDown" disabled = {props.todo === 0} onClick={() => props.moveUpDown(props.todo, props.todo + 1)} > Down </div> </div> ) }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Los parámetros que está pasando a moveUpDown no tienen sentido; parece que deberían ser números, pero está pasando props.todo que es un objeto.

Tal vez si cambiara la función moveUpDown para aceptar el "to do" que desea mover, y un delta para indicar en qué dirección desea moverlo; p.ej:

 const moveUpDown = (todo, delta) =>{ const newCounts = [...todos]; // Remove from the array const currentIndex = newCounts.indexOf(todo); newCounts.splice(currentIndex, 1); // Now put it back in at the new position newCounts.splice(currentIndex + delta, 0, todo); setTodos(newCounts) }

Ahora puede cambiar sus llamadas, por ejemplo:

 <div className="item-moveUpDown" disabled={props.todo === 0} onClick={() => props.moveUpDown(props.todo, 1)} > Down </div>

Tenga en cuenta también que su atributo disabled no tiene sentido: props.todo es un objeto, por lo que nunca será igual a cero. ¿Quizás debería pasar el índice del elemento de tareas pendientes como una propiedad separada?

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!