【发布时间】:2021-12-02 16:40:53
【问题描述】:
错误:重新渲染过多。
解释代码:(
iam 映射对象数组 - 在该映射函数中,我创建了新的对象数组(raiting = [..rating, {}])
然后将 useState state 设置为对象数组(setRatingFinal([...rating]))
然后最后我显示 - 但我收到错误。
)
如果可以在答案中编写代码,有人可以给我写答案吗?
谢谢。
var [ratingFinal, setRatingFinal] = useState([])
var rating = []
movies.map((movie, i) => {
rating = [...rating, {index: i, value: movie["IMDB Votes"] * movie["IMDB Rating"]}];
});
setRatingFinal([...rating]) **//because of this is error**
return (
<div>
{ratingFinal.map((movie, i) => {
<div key={i}>{movie.value}</div>
})}
</div>
);
}
export default App;
电影是由 3021 个对象组成的数组 - 该数组中的一个对象的示例 -
{"IMDB Rating": 6.3, "IMDB Votes": 365}
我尝试不使用var rating,只使用ratingFinal,但这不起作用——像这样:
var [ratingFinal, setRatingFinal] = useState([])
movies.map((movie, i) => {
setRatingFinal([...ratingFinal, {index: i, value: movie["IMDB Votes"] * movie["IMDB Rating"]}]);
});
return (
<div>
{ratingFinal.map((movie, i) => {
<div key={i}>{movie.value}</div>
})}
</div>
);
}
export default App;
【问题讨论】:
标签: javascript reactjs rendering use-state