У меня самые простые приложения. Есть родительский <App>
компонент и дочерний <MyChildOne>
компонент. Оба основаны на классе.
Может кто-нибудь объяснить, , почему React дважды вызывает функцию рендеринга child <MyChildOne>
?
Вот мой <App>
код:
import React from "react";
import "./App.css";
import MyChildOne from "./MyChildOne.js";
class App extends React.Component {
render() {
return (
<div>
<MyChildOne />
</div>
);
}
}
export default App;
А вот мой <MyChildOne>
код:
import React from "react";
class MyChildOne extends React.Component {
counter = 0;
render() {
this.counter = this.counter + 1;
console.log(
"Code has called MyChildOne and this.counter has value: " + this.counter
);
return <h1>Hello, {this.counter}</h1>;
}
}
export default MyChildOne;
Вывод в браузере такой:
Здравствуйте, 1
А вот что регистрируется в консоли:
Код вызвал MyChildOne, и this.counter имеет значение: 1
Код вызвал MyChildOne, и this.counter имеет значение: 2
Так ясно, что React дважды вызывает функцию рендеринга <MyChildOne>
- но я не могу понять, почему !!!!
Это бесполезно меня, потому что я хочу передать как props массив вещей от <App>
до <MyChildOne>
, и я хочу, чтобы <MyChildOne>
отобразил, скажем, <h1>
для каждого элемента 'вещь' этого массива. Я не хочу, чтобы <h1>
отображались дважды!