Ответ 1
Вы можете использовать имена вычисленных имен ES6, которые выглядели бы следующим образом с помощью переменной index
:
updateValue(index, e) {
var items = React.addons.update(this.state.items, {
[index]: {
amount: {$set: e.target.value}
}
})
this.setState({items})
}
В соответствии с этой таблицей совместимости ES6, Transpiler React JSX поддерживает их, когда включены преобразования Harmony, или вы можете использовать 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})
}