我目前正在开发一个 React 应用程序,我正在使用 React 的上下文 API 来整合应用程序的业务逻辑。
在上下文中,所有 CRUD 函数都向 API 发出 axios 请求并返回可以被组件用来处理错误处理和输入的承诺。这是上下文https://github.com/luckyrose89/notes-app/blob/master/src/AppContext.js
我的应用程序有一个 notebooks 数组,其中包含单个笔记本对象。这些对象中的每一个都有一个 notes 数组,该数组引用每个 notebook 中的笔记。这是 API 控制器https://github.com/luckyrose89/notebook-app-backend/blob/master/controllers/notebook.js
只要我在创建、阅读、更新和删除笔记本,我就必须更改应用上下文中的状态,以便在我的应用中更新内容。但是,当我在笔记本的 notes 数组中创建、读取、更新或删除任何内容时,我不必对状态进行这些更改。我返回承诺,状态会自行改变。谁能帮我理解为什么会这样?
例如,当我在笔记本中创建一个新笔记并使用它提交时:
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 的响应添加到笔记本的 notes 数组来更改应用程序上下文中的状态。谁能解释一下。