В настоящее время я работаю над приложением React, в котором я использую контекстный API React для объединения бизнес-логики приложения.
Внутри контекста все функции CRUD делают аксиос запросы к API и возвращают обещания, которые могут использоваться компонентами для обработки ошибок и ввода. Это контекст https://github.com/luckyrose89/notes-app/blob/master/src/AppContext.js
Мое приложение имеет массив блокнотов, который будет содержать отдельные объекты блокнотов. И каждый из этих объектов имеет массив заметок, который ссылается на заметки, сделанные в каждой записной книжке. Это контроллер API https://github.com/luckyrose89/notebook-app-backend/blob/master/controllers/notebook.js
Пока я создавал, читал, обновлял и удалял записные книжки, мне приходилось вносить изменения в состояние в контексте приложения, чтобы вещи обновлялись в моем приложении. Но когда я создаю, читаю, обновляю или удаляю что-либо из массива заметок в блокнотах, мне не нужно вносить эти изменения в состояние. Я возвращаю обещание, и государство меняется само по себе. Может ли кто-нибудь помочь мне понять, почему это происходит?
Например, когда я создаю новую заметку в блокноте и отправляю ее, используя это:
handleSubmit = event => {
event.preventDefault();
this.props
.createNotepage(this.props.match.params.id, this.state)
.then(response => {
this.clearInputs();
this.props.history.push("/viewbooks");
})
.catch(err => {
this.setState({
errorMessage: err.response.data.error
});
});};
Мне не нужно менять состояние в контексте приложения, вручную добавляя ответ из API в массив заметок ноутбука. Может кто-нибудь, пожалуйста, объясните это.