【发布时间】:2021-02-03 03:06:31
【问题描述】:
我正在处理我的第一个 React 项目并遇到了这个问题。
使用this.state 处理和存储数据的最佳方式是什么?
我目前的工作流程:
- 从
componentDidMount()中的api获取数据 - 将数据存储在
this.state中(例如在this.state.account_data中作为子对象` - 使用
<input>等控件的value属性中的数据:this.state.account_data.username - 每个控件都有自己的
onChange-handleronChange={e => this.onChangeUsername(e)}
方法onChangeUsername(e) 将this.state 更改为this.setState({username: e.target.value})。
所以,问题是:更改 unsername 控制值后,this.state 中的用户名有两个变体:this.state.account_data.username 和 this.state.username。这需要创建另一部分代码来更新this.state.account_data,因为我想通过UserService.update(this.state.account_data) 将新数据发送到API。
有没有更简单的方法或最佳做法是什么?
【问题讨论】:
-
直接避免状态操作。改为使用 React-Redux。介绍请参考here。
-
为什么要直接避免状态操作?
-
随着应用程序规模的增长,它变得越来越困难。为什么不试试 redux?我敢肯定,一旦你有了这个概念,你就不会问这个问题了。为整个应用程序维护单一的事实来源更加合乎逻辑且更容易。
-
redux很好,当您有不同的组件共享相同的状态并且您希望避免父组件存储它并通过props传递数据的必要性时,HOC 模式。在很多情况下,如果您使用其他状态管理架构,例如Apollo+Next+Graphql,它可能会导致过度设计或无用。
标签: reactjs