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

174
Visualizações
¿Cómo hago para que cada usuario tenga su propio estado?

Tengo un sistema de me gusta similar a Instagram. El problema es que cada vez que me gusta una foto, el estado actual de currentUserClicks no es su propio estado para todos los usuarios.

Por ejemplo: Existen fotos A y B. A tiene 10 me gusta B tiene 20 me gusta.

Si hago clic en Me gusta en la foto A, entonces el conteo de Me gusta se convierte correctamente en 11

Inmediatamente después, si hago clic en Me gusta en la foto B, el conteo de Me gusta se convierte incorrectamente en 19 en lugar de 21.

El estado currentUserClicks piensa que la foto B no debería gustar (disminuye el conteo de Me gusta en 1 al igual que Instagram) porque currentUserClicks se convierte en> = 1.

¿Cómo puedo hacer que cada usuario tenga su propio valor currentUserClicks ?

 const [currentUserClicks, setCurrentUserClicks] = useState(null); const handleLikesBasedOnUserId = (likedPhotoUserId) => { if(currentUserClicks >= 1) { setCurrentUserClicks(currentUserClicks - 1); handleDislike(likedPhotoUserId); } else { setCurrentUserClicks(currentUserClicks + 1); handleLike(likedPhotoUserId); } };
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede "individualizar" el estado de un par de formas básicas.

  1. Empuje el estado hacia abajo a los componentes a los que pertenece.

    Aquí mueve el estado actual de currentUserClicks a un componente de React que administra su propio estado y actualizaciones, completamente independiente de cualquier otro componente de React.

    Ejemplo:

     const InstagramPost = (props) => { const [liked, setLiked] = useState(false); const handleLikesBasedOnUserId = () => { if (liked) { handleDislike(id); // id from props } else { handleLike(id); } setCurrentUserClicks(liked => !liked); }; ... return ( ... <button onClick={handleLikesBasedOnUserId}>like</button> ... ); };

    ...

     {posts.map(post => ( <InstagramPost key={post.id} ....props.... /> ))}
  2. Eleve el estado a un componente antepasado común y maneje las actualizaciones de estado de fusión.

    Ejemplo:

     const InstagramPost = ({ liked, likeHandler }) => { ... return ( ... <button onClick={likeHandler}>like</button> ... ); };

    ...

     const [liked, setLiked] = useState({}); const handleLikesBasedOnUserId = (id) => { if (liked[id]) { handleDislike(id); } else { handleLike(id); } setCurrentUserClicks(liked => ({ ...liked, [id]: !liked[id], // toggle liked state by id })); }; ... {posts.map(post => ( <InstagramPost key={post.id} liked={liked[post.id]} likeHandler={() => handleLikesBasedOnUserId(post.id)} ....props.... /> ))}
about 4 years ago · Juan Pablo Isaza Relatório
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