我有一个函数,我想写在反应。在我的类中,我有一个状态对象fields,如下所示:
this.state = {
step: 1,
fields: {
type: '',
name: '',
subtype: '',
team: '',
agreement: ''
}
};我有各种函数使用immutability helper分配这些键,通常如下所示:
assignType(attribute) {
var temp = update(this.state.fields, {
type: {$set: attribute}
});
this.setState({
fields: temp
});
}我想要做的是使用一个更通用的函数,并执行如下操作:
assignAttribute(field, attribute) {
var temp = update(this.state.fields, {
field: {$set: attribute}
});
this.setState({
fields: temp
});
}但是,这不管用。如何使用immutability-helper使用变量键?
发布于 2017-02-23 00:04:25
弄明白了!我需要使用ES6计算的属性名并简单地编辑assignAttribute以:
assignAttribute(field, attribute) {
var temp = update(this.state.fields, {
[field]: {$set: attribute}
});
this.setState({
fields: temp
});
}发布于 2017-02-23 00:05:08
如果您有动态字段名,可以使用[]语法:
var data = {}
data[field] = {$set: attribute}
var temp = update(this.state.fields, data)这就得到了如果您可以使用ES6,则会更加简洁。。
https://stackoverflow.com/questions/42404563
复制相似问题