У меня есть этот компонент React
import React, { useState, useEffect } from 'react';
import axios from "axios";
import "../../css/driversStandings.css";
function DriversStandingsComponent() {
const [data, setData] = useState([]);
var row = 1;
useEffect(() => {
axios.get("http://localhost:4000/api/standings").then(res => {
const driversChampionshipData = res.data[0].DriversChampionship
setData(driversChampionshipData);
console.info(data)
})
});
return (
//Here I return a mdbootstrap table, mapping the data array
)
}
export default DriversStandingsComponent;
Я не очень понимаю, почему это происходит, и влияет ли это на производительность сервера.
Любая идея для решения этой проблемы? Я даже не знаю, ошибка ли это сама 😅
Действительно, я поставил <React.StrictMode>. Спасибо за полезные данные, которых я не знал
UseEffect вызывается каждый раз при повторном рендеринге компонента. Вы должны добавить пустой массив зависимостей, таким образом, useEffect вызывается только тогда, когда компонент смонтирован, например:
useEffect(() => {
axios.get("http://localhost:4000/api/standings").then(res => {
const driversChampionshipData = res.data[0].DriversChampionship
setData(driversChampionshipData);
console.info(data)
})
}, []);
Документы, подтверждающие этот ответ: reactjs.org/docs/…
Возможно, у вас установлен <React.StrictMode>, что приведет к двойному логированию только в процессе разработки. Но вы все равно должны снять свои console.infos перед производством.