Missing dependency
предупреждение, потому что вы используете console.log(elements)
внутри useEffect. И ваш журнал элементов не показывает последний результат, потому что состояние не изменилось (пока)
Просто добавьте useEffect
, чтобы отслеживать изменения элементов, как показано ниже.
function App() {
const [elements, setElements] = useState([]);
useEffect(() => {
const res = async () => {
const result = await axios.get('/data');
const data = result.data;
console.log(data);
setElements(elements => [...elements, data]);
};
res();
}, []);
useEffect(() => console.log(elements), [elements])
return <div className='App'>Hello</div>;
}
export default App;
Чтобы ответить на вашquestion;
Массив зависимостей предназначен для того, чтобы React знал, когда должен быть запущен useEffect в этом случае. Поэтому добавленный мной useEffect срабатывает только при изменении его зависимости elements
.