У вас есть «слишком просто» state
.
state = {
alignment: "left",
formats: ["bold"]
};
Ваш state.alignment
используется всеми кнопками.Если вы хотите сохранить его в виде отдельного компонента, вам нужно сделать его двумерным массивом:
[
['<#1 btn value>', '<#2 btn value', ...],
[..., ..., ...]
]
Затем, когда вы вызываете setState
, вам нужно изменить соответствующий элемент в двумерном массиве на основеместо действия.Вы должны индексировать, одну строку, одну ячейку, вы можете использовать их.
ОБНОВЛЕНИЕ Новое состояние - 2D массив
value: [
["no", "no", "no"],
["no", "no", "no"]
]
Новый ToggleButtonGroup -использование rowIdx и cellIdx для получения правильной позиции в 2D-массиве
<ToggleButtonGroup
className={classes.toggleButtonGroup}
value={value[rowIdx][cellIdx]}
exclusive
onChange={(event, val) => this.handleValue(event, val, rowIdx, cellIdx)}
>
New handleValue - использование rowIdx, cellIdx для изменения значения в правильной позиции.
handleValue = (event, val, rowIdx, cellIdx) => {
const newValue = [...this.state.value]
newValue[rowIdx][cellIdx] = val
this.setState({
value: newValue,
})
}