Компонент You повторно визуализируется, поскольку вызов API, который вы выполняете в componentDidMount, приводит к успешному выполнению setState.Из-за этого дочерние компоненты также проходят повторную визуализацию, даже если их реквизиты не изменились.Чтобы избежать этого, вы можете написать дочерний компонент, расширив React.PureComponent
, который реализует shouldComponentUpdate
путем поверхностного сравнения реквизита и состояния.
export default class Home extends PureComponent {
render() {
console.log("Render");
return (
<div>
<h1>console.log render twice</h1>
</div>
);
}
}
Рабочая демонстрация