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

360
Visualizações
Zustand: cambiar el valor del parámetro en el objeto almacenado

Estoy tratando de crear una función para un estado de películas calificadas en Zustand.

El estado consta de una matriz de objetos, ejemplo con dos entradas:

 ratedMovies: [ { imdbID: "tt0076759", userRating: "5" }, { imdbID: "tt0080684", userRating: "10" }, ]

A continuación se muestra la función que gestiona los cambios de ratingMovies. Aquí es donde radica el problema. Quiero que verifique si un objeto con el mismo imdbID está presente en el estado de ratingMovies. Y si es así para actualizar el valor del mismo, en lugar de agregar otro objeto con el mismo imdbID pero con un nuevo valor.

Si trato de cambiar la calificación de una de las películas del ejemplo de estado anterior (con ellas en el estado ofc), obtengo la verificación de la consola IF y la aplicación falla con el error: TypeError: Cannot create property 'userRating' on number '0'

Si el estado está vacío o cambio la calificación de otras películas, obtengo la verificación de la consola ELSE, pero aún no se agregan al estado.

 addUserRating: (rating) => { console.log("rating object", rating) set((state) => { if (state.ratedMovies.find((movie) => movie.imdbID === rating.imdbID)) { console.log("add rating IF") let index = state.ratedMovies.findIndex( (movie) => movie.imdbID === rating.imdbID ) index.userRating = rating.userRating return [index, ...state.ratedMovies] } else { console.log("add rating ELSE") return [rating, ...state.ratedMovies] } }) }

la función onChange en la entrada donde se puede calificar una película crea un objeto idéntico al de la matriz de estado y lo pasa a la función que administra el estado de las películas calificadas:

 const changeUserMovieRating = (event) => { const movieRating = { imdbID: modalDetails.imdbID, userRating: event.target.value, } console.log(movieRating) addUserRating(movieRating) }

cuya salida es:

 {imdbID: 'tt0120915', userRating: '2'}

Espero haber explicado todo claramente, y agradeceré mucho cualquier consejo sobre cómo resolver este problema, ¡gracias de antemano!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Lo siento, pero todo este enfoque que tenía al momento de hacer esta pregunta no tenía sentido y tuvo que ser reelaborado por completo.

Decidí no agregar el parámetro durante la recuperación, ya que en otro componente se podrían recuperar los mismos datos. Así que decidí mantener el valor de 'userRating' en el almacenamiento local y si la película recuperada ya había sido calificada una vez por el 'usuario', se mostraría el valor.

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