Это простой вопрос. Как мне успешно обновить объект состояния через реагирующие хуки?
Я только начал использовать ловушки, и мне нравится, как она позволяет использовать простую и чистую функцию JavaScript для создания и управления состоянием с помощью функции useState()
, а также вносить изменения, которые влияют на компоненты, используя useEffect()
функция, но я не могу заставить работать обновление состояния!
После выполнения запроса к API он возвращает необходимые данные, но когда я пытаюсь обновить состояние для ошибки в запросе и для успешного запроса, он не обновляет состояние. Я зарегистрировал его в консоли браузера, но в состояние не было внесено никаких изменений, он возвращает неопределенное значение.
Я знаю, что не делаю что-то прямо в коде. Вот мой App
компонент, это единственный компонент для извлечения и обновления:
import React, { useState, useEffect } from 'react';
import ReactDOM from 'react-dom';
export default function App() {
// Set date state
const [data,setData] = useState({
data: [],
loaded: false,
placeholder: 'Loading'
});
// Fetch and update date
useEffect(() => {
fetch('http://localhost:8000/api/lead/')
.then(response => {
if (response.status !== 200) {
SetData({placeholder: 'Something went wrong'});
}
response.json()
})
.then(result => {
console.log(data);
setData({data: result});
});
},[]);
return (
<h1>{console.log(data)}</h1>
);
}
ReactDOM.render(<App />, document.getElementById('app'));