我有一个我想在React中编写的函数。在我的课堂上,我有一个状态对象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
?
答案 0 :(得分:11)
想出来!我需要使用ES6 computed property names,只需将assignAttribute
编辑为:
assignAttribute(field, attribute) {
var temp = update(this.state.fields, {
[field]: {$set: attribute}
});
this.setState({
fields: temp
});
}