С
this.setState({
[`${shirtsSize[index]}`]: e.target.value
})
вы не обновляете данные в массиве shirtSize
, но создаете новый ключ, например shortsSize[0]
и так далее.Вам нужно обновить массив как
const value = e.target.value;
this.setState(prevState => ({
shirtsSize: [...prevState.shirtsSize.slice(0, index), value, ...prevState.shirtsSize.slice(index + 1) ]
}))
или просто
const shirtsSize = [...this.state.shirtsSize];
shirtsSize[index] = e.target.value
this.setState({
shirtsSize
})