Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
404 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 Reply

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...