javascript - 在 React 上下文状态中更新单个项目
问题描述
所以我有以下格式的上下文:
class UserProvider extends Component {
constructor(props) {
super(props)
this.initialize = (details) => {
this.setState(state => {
//Setting each item individually here
//e.g state.a = details.a
})
}
this.editA = () => {
this.setState(state => {
//change A here
})
}
this.editB = () => {
this.setState(state => {
//Change B here
})
}
this.state = {
a: null,
b: null,
editA: this.editA,
editB: this.editB
}
}
render() {
return (
<User.Provider value={this.state}>
{this.props.children}
</User.Provider>
)
}
}
所以对于每个状态,我都有一个单独的函数来更新它。如果我只想更新一个状态,我应该怎么做?
解决方案
考虑实现一个通用函数,以便您可以控制您的键和相应的值。
IE
const changeField = (key, value) => this.setState({ [key]: value});
函数调用
changeField('a','value_a')
changeField('b','value_b')
推荐阅读
- sql - 如何使用 GROUP BY 从 SQL 中的 3 个表中选择数据?
- ios - 反应原生 xcode 项目不在 iphone 上构建
- google-cloud-platform - Google Cloud Composer 变量不会传播到 Airflow
- nsis - 在 NSIS 中跳过参数
- nameerror - Python 3.7 代码不会循环并返回名称错误
- c - 文件搜索场景中的 zlib 压缩问题,zlib 中是否有任何可用的锁定/标志机制允许它们之间的完整性
- python - DRF Viewset 自定义“创建”方法不调用序列化程序自定义“创建”方法
- javascript - 当我在不选择任何数据的情况下提交表单时 v-show 不起作用
- node.js - 检查用户是否使用护照登录模板
- r - R插入符号包,错误:请确保`y`是一个因子或数值