When using a custom onRowSelectionChange, you must manually manage the rowsSelected state.
To ensure the checkboxes update correctly, add the rowsSelected option and pass selectedItems as its value.
An example can be found in the mui-datatables selectable-rows example.
A snippet
const options = {
// Other options...
// The custom rowsSelected that you missed
rowsSelected: this.state.rowsSelected,
onRowSelectionChange: (rowsSelectedData, allRows, rowsSelected) => {
console.log(rowsSelectedData, allRows, rowsSelected);
this.setState({ rowsSelected: rowsSelected });
},
// ...
};