Я пытаюсь сделать журнал тренировок для себя и в качестве тренинга для React и Node.js. У меня есть собственный API со многими функциями, в том числе «/ get-workouts», который, как следует из названия, предназначен для получения тренировок из базы данных.
Вот API
app.get('/get-workouts', (req, res) => {
db('workoutlogger').select('*')
.limit(3)
.from('workouts')
.then(workouts => {
if(workouts.length) {
console.log(workouts);
res.status(200).json(workouts);
} else {
res.status(400).send('No workouts found');
}
})
.catch(err => {
console.log(err);
res.status(404).send('Error getting workouts')
})
})
Вот мой внешний интерфейс:
constructor(props) {
super(props)
this.state = {
workoutList: {}
}
}
getWorkouts = () => {
fetch('http://localhost:3001/get-workouts')
.then(workouts => {
workouts.json();
})
.then(workoutList => {
this.setState({workoutList})
})
.catch(err => console.log('There was an error getting workouts', err))
}
componentDidMount() {
this.getWorkouts();
}
Если я укажу "тренировки" на console.log в первом .then () моего выборки. Мой API четко регистрирует список последних 3 тренировок, в которые я вошел, и изначально this.state.workoutList является объектом. Но как только set.state предположительно устанавливает список тренировок как список моих тренировок, он записывается как неопределенный, и я не могу его отобразить. Откуда проблема?