На моем локальном хосте в моей консоли я вижу, что мой компонент визуализируется дважды, и не знаю почему. Я не втягиваю какие-либо API с помощью componentDidMount, просто базовый компонент, в котором ничего нет. Ожидается ли это?
Когда я загружаю данные API, я получаю 4 повторных рендеринга в моей консоли, где я ожидал бы увидеть еще один повторный рендеринг при использовании componentDidMount для обновления состояния.
Я видел много потоков, касающихся обновлений состояния, вызывающих повторную визуализацию, но я не мог найти ничего, что касалось бы чего-то такого, что кажется таким простым.
App.js
import React from "react";
import Testing from "./components/Body/Testing"
function App() {
return (
<div className="App">
<Testing />
</div>
);
}
export default App;
Testing.js
import React, { Component } from 'react'
export class Testing extends Component {
constructor(props) {
super(props);
this.counter = 0;
}
render() {
this.counter++;
console.log('render ' + this.counter)
return (
<div>Test</div>
)
}
}
export default Testing
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import * as serviceWorker from './serviceWorker';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
Мой вывод на консоль выглядит следующим образом ...
this.counter
? Это не реквизит и не состояние ... разве это не вызывает повторного рендеринга? Вместо этой странной переменнойcount
просто используйтеconsole.count
. - person Nick   schedule 09.05.2020Strict
и посмотреть, произойдет ли то же самое. Это побочный эффект строгого режима. - person Panther   schedule 09.05.2020