Я наткнулся на этот простой функциональный компонент React, который рендерится четыре раза, хотя я ожидал, что он будет рендерить один раз вначале, выполнить useEffect, который обновляет состояние и, следовательно, рендерит снова. Вместо этого консоль отправляет 4 вывода журнала, указывая, что она обрабатывается четыре раза. Есть идеи, почему и какие ресурсы в основном жизненном цикле функциональных компонентов React?
const { useState, useEffect } = React;
function App() {
const [jobs, setJobs] = useState([]);
useEffect(() => setJobs(["test"]), []);
console.log("APP", jobs);
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
<div>{jobs}</div>
</div>
);
}
ReactDOM.render(
<React.StrictMode>
<App/>
</React.StrictMode>,
document.getElementById("root")
);
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.12.0/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.12.0/umd/react-dom.development.js"></script>
https://codesandbox.io/s/solitary-tree-t120d?file=/src/App.js:149-191
index.js
они оборачивают<App/>
в<React.StrictMode>
. Вот что его вызывает. - person Gabriele Petrioli   schedule 10.04.2020