Это меняет все флажки, потому что все флажки ссылаются на одну и ту же переменную в состоянии. Вы можете хранить их идентификаторы в массиве:
state: {
checkedIdArray: []
}
Затем проверьте, находится ли идентификатор текущего блока в массиве, чтобы определить, проверен ли он:
<Checkbox
key={box.id}
checked={this.state.checkedIdArray.includes[box.id]}
onClick={() => this.onCheck(box.id)}
/>
Наконец, ваш метод onCheck () будет выглядеть примерно так:
onCheck(id) {
if (this.state.checkedIdArray.includes(id)) {
this.setState({
checkedIdArray: this.state.checkedIdArray.filter((val) => val !== id)
});
} else {
this.setState({
checkedIdArray: [...this.state.checkedIdArray, id]
});
}
}
Не проверял или что-нибудь, но что-то вроде этого должно привести вас туда, куда вы хотите.