tir*_*adc 33 javascript ecmascript-6 reactjs
https://facebook.github.io/react/docs/update.html
我有一个更新函数,它接收索引以及事件,以便更改数组中该特定项的值.
index在这种情况下,如何评估而不是将其视为集合键?它甚至可能吗?
updateValue: function(index, e) {
var items = React.addons.update(this.state.items, {
index: {
amount: {$set: e.target.value}
}
});
this.setState({
items: items
})
}
Run Code Online (Sandbox Code Playgroud)
现在这显然不起作用,因为this.state.items['index']['amount']当我想修改this.state.items[1]['amount']索引为1 时,它正在尝试更新未设置的内容.
Jon*_*nan 44
您可以使用ES6计算的属性名称,这与您的index变量看起来如下:
updateValue(index, e) {
var items = React.addons.update(this.state.items, {
[index]: {
amount: {$set: e.target.value}
}
})
this.setState({items})
}
Run Code Online (Sandbox Code Playgroud)
根据这个ES6兼容性表,当它的Harmony转换被启用时,React的JSX转换器支持它们,或者你可以使用Babel(因为反应工具正在被弃用,无论如何都支持Babel).
如果不这样做,您可以使用辅助函数来创建具有给定命名属性的对象:
function makeProp(prop, value) {
var obj = {}
obj[prop] = value
return obj
}
// ...
updateValue: function(index, e) {
var items = React.addons.update(this.state.items, makeProp(
index, {
amount: {$set: e.target.value}
}
))
this.setState({items: items})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6169 次 |
| 最近记录: |