I read through https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#fetching-external-data-when-props-change . I am still not able to understand why did they h
My understanding is that if the componentWillReceiveProps() method is being invoked then some properties of the component has been changed and that component should be informed and potentially re-rendered again.
Having ajax call inside of the componentWillReceiveProps() might break that flow.
My gut feeling is that we are gently guided to make ajax calls outside of the components and pass all the results of those ajax calls through properties. It makes your components very clean and testable.