Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
403 views
in Technique[技术] by (71.8m points)

reactjs - Uncaught Invariant Violation: Too many re-renders

I'm fetching the data from API's but it causes too many re-renders.Needed help to control this behavior.

  useEffect(() => {
    fetchAdDetails(props.match.params && props.match.params.id);
    getAllReviews(props.match.params && props.match.params.id);
  
  }, [props.match.params.id, getAllReviews, fetchAdDetails]);
question from:https://stackoverflow.com/questions/65885699/uncaught-invariant-violation-too-many-re-renders

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You could do the following:

useEffect(() => {
    fetchAdDetails(props.match.params && props.match.params.id);
    getAllReviews(props.match.params && props.match.params.id);
  
  }, []);

If you want to run an effect and clean it up only once (on mount and unmount), you can pass an empty array ([]) as a second argument. This tells React that your effect doesn’t depend on any values from props or state, so it never needs to re-run.

https://reactjs.org/docs/hooks-effect.html#tip-optimizing-performance-by-skipping-effects


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...