恢复 对于在多选字段中选择的每个值,将调用函数并将值添加到字符串。我想要的只是将它作为一个Object添加到一个数组中。例如:
选择了1个选项:
Current:
"selected01"
Desired:
[ { "value": "selected01"} ]
选择了2个选项:
Current:
"selected01, selected02"
Desired:
[ {"value": "selected01"}, {"value":"selected02"}]
完整说明:
我有一个函数,它接收一个String并将其添加到该值的状态。例如:
handleSelectChange (value) {
this.setState({ value })
}
因此,假设您有一个具有三个选项的多选字段,并选择其中两个。
它会打电话:
onChange={this.handleSelectChange}
状态将是:
state.value: 'selected01, selected02'
如果再选择一个:
state.value: 'selected01, selected02, selected03'
但是 我想要做的就是拥有一个包含3个对象的数组:
Object:
[
{"value": "select01"},
{"value": "select02"},
{"value": "select03"}
]
查看所需输出的另一种方法(console.log):
state: [3]
[0]: Object
[1]: Object
[2]: Object
有什么想法吗?
答案 0 :(得分:0)
您可以调用this.getState()添加您的选择,然后执行this.setState()。例如(使用lodash https://lodash.com/docs/4.17.4#concat):
this.setState(_.concat(this.getState(), { value }))
答案 1 :(得分:0)
对插入元素使用this.setState()
,对get元素使用this.getState()
获取任何信息here
答案 2 :(得分:0)
答案是:
handleSelectChange (value) {
this.setState({value})
let valuesArr = value.split(',')
let valuesArrObj = []
valuesArr.forEach((val) => {
valuesArrObj.push({
[val]: val
})
})