Я вызываю функцию, которая должна сделать 2 вещи:
- Вызвать функцию родительского уровня, чтобы обновить мою базу данных с помощью запроса на выборку, а затем обновить состояние моего родительского уровня
- Подождите, пока первая функция обновит мое состояние, а затем направьте в представление, где видны мои обновленные данные (с использованием реквизита)
Проблема в том, что я не уверен, как этого ждатьПервая функция должна быть завершена, прежде чем перейти ко второй.Поэтому, когда я пытаюсь изменить представления с помощью этой второй функции, показанные данные не обновляются.
Функция родительского уровня, которую я хотел бы запустить и обновить свое состояние.
updateEntry = (newHeader, newBody, index) => {
fetch("http://localhost:3000/update", {
method: 'PUT',
body: JSON.stringify({
header: newHeader,
body: newBody,
index: index
}),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => { this.setState({journalDb: data })})
}
Функция дочернего уровня, где я вызываю функцию родительского уровня, используя updateEntry ()
initiateUpdate = (e) => {
e.preventDefault();
this.props.updateEntry(value1, value2, value3)
this.props.setEditMode();
}
Проблема в том, что состояние моего родительского уровня не обновляется вовремя, чтобы показать, когда я изменяю маршрут, используя setEditMode () ... Я не уверен, какдождаться обновления родительского состояния перед запуском