error: Too many re-renders.
explaining code: (
iam maping array of object – in that mapping funtion i maked new array of objects( raiting = [..rating, {}]
)
then set useState state to be that array of objects ( setRatingFinal([...rating])
)
and then final i display that – but iam getting error.
)
Can somebody write me answer for this, if its posible to write code in answer.
Thanks.
JavaScript
x
21
21
1
var [ratingFinal, setRatingFinal] = useState([])
2
var rating = []
3
4
movies.map((movie, i) => {
5
rating = [rating, {index: i, value: movie["IMDB Votes"] * movie["IMDB Rating"]}];
6
});
7
8
setRatingFinal([rating]) **//because of this is error**
9
10
11
return (
12
<div>
13
{ratingFinal.map((movie, i) => {
14
<div key={i}>{movie.value}</div>
15
})}
16
</div>
17
);
18
}
19
20
export default App;
21
the movies is array of 3021 objects – example of one object in that array –
JavaScript
1
2
1
{"IMDB Rating": 6.3, "IMDB Votes": 365}
2
i tryed without var rating
just with ratingFinal
, but and that dont work- like this:
JavaScript
1
17
17
1
var [ratingFinal, setRatingFinal] = useState([])
2
3
movies.map((movie, i) => {
4
setRatingFinal([ratingFinal, {index: i, value: movie["IMDB Votes"] * movie["IMDB Rating"]}]);
5
});
6
7
return (
8
<div>
9
{ratingFinal.map((movie, i) => {
10
<div key={i}>{movie.value}</div>
11
})}
12
</div>
13
);
14
}
15
16
export default App;
17
Advertisement
Answer
make timeout and move setRatingFinal([...rating])
in timeout minimum 100ms,
and you must make one objec with value because in first render it will not show (it can’t read property of undefined)
JavaScript
1
2
1
var [ratingFinal, setRatingFinal] = useState([{value: 'something'}])
2