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

353
Visualizações
Obtener TypeError: Object(...) no es un error de función al intentar cambiar una propiedad de estado

Soy muy nuevo en React y trato de implementar la función de Calificación en el código. ¿Alguien puede decir por qué obtengo TypeError: Object (...) no es un error de función cuando intento cambiar una propiedad de estado cuando se establece la propiedad onChange del componente de calificación .

Mi código

 export default function Details(props) { const [movie_detail, set_movie_detail] = useState({ poster_url:"", artists:[], title:"", genres:[], duration:0, release_date:"", rating:0, storyline:"", id:"", wiki_url:"", trailer_url:"", censor_board_rating:"" }); async function data(){ const data = await fetch(props.baseUrl + "movies/"+props.match.params.id , { method: "GET", headers: { "Content-Type": "application/json", "Cache-Control": "no-cache" } }); const rawData = await data.json(); set_movie_detail(rawData); } const handleRatingChange = (value) =>{ console.log(value); setState({rating:value}); } useEffect(() => { data(); }, []); return ( <> <Header baseUrl={props.baseUrl} movieid={movie_detail.id} ></Header> ......... <div className="column3"> <Typography> <b>Rate this movie</b> </Typography> <Rating name="rating" value={movie_detail.rating/2} max={5} onChange={handleRatingChange} icon= { <StarBorderIcon style={{color:"black"}} /> } /> </div> </> ); }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Debería usar el nombre correcto de la función que actualiza el estado. En este caso, set_movie_detail en lugar de setState . También debe fusionar la actualización con el estado anterior en lugar de sobrescribirlo.

Su función debe ser la siguiente:

 const handleRatingChange = (value) => { console.log(value); set_movie_detail((prevState) => { ...prevState, rating: value }); }
about 4 years ago · Juan Pablo Isaza Relatório

0

Debería usar set_movie_detail en lugar de setState mientras intenta actualizar el valor del estado.

 const handleRatingChange = (value) =>{ console.log(value); set_movie_detail(prev=>{...prev,rating:value}); }

set_movie_detail es la función que actualiza el estado de movie_detail . Aquí, estamos haciendo uso del operador de propagación ... para garantizar que solo se sobrescriban los atributos deseados ( rating aquí) y el resto de los valores permanezcan iguales.

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