У вас есть дополнительная точка в вашем коде (после состояния):
[path]: this.state.[path].concat([value])
Должно быть:
[path]: this.state[path].concat([value])
Затем, когда вы хотите установить состояние на основе предыдущего состояния, вы должны использовать setState
, который принимает обратный вызов, с prevState
в качестве аргумента.
Итак, ваш код должен выглядеть примерно так:
onCheckBoxItemClickList(e, value, path) {
console.log(e.target.checked)
if (e.target.checked) {
//append to array
this.setState(prevState => ({
[path]: prevState[path].concat([value])
}))
} else {
//remove from array
this.setState(prevState => ({
[path]: prevState[path].filter(function (val) {
return val !== value
})
}))
}
}