Я изо всех сил пытался заставить Таблицу материалов работать так, как я хочу: мне нужно иметь возможность выбирать по одной строке за раз и использовать ее Состояние для манипулирования ее содержимым. Я основал себя на примерах этого сайта (точнее, на Selected Row Styling) и сумел добраться до этого:
const [rowState, setRowState] = React.useState({
selectedRow: null,
});
const [state, setState] = React.useState({
columns: //columns format
data: //table content
});
<MaterialTable
title="User Management"
columns={state.columns}
data={state.data}
rowsPerPageOptions={[5,6,7]} //this doesn't seem to work at all
onRowClick={((e, selectedRow) => setRowState({ selectedRow }))}
options={{
rowStyle: rowData => ({
backgroundColor: (rowState.selectedRow && rowState.selectedRow.tableData.id === rowData.tableData.id) ? '#DDD' : '#FFF'
})
}}
/>
После некоторого тестирования, получаетсятаблица работает, и я могу получить доступ к содержимому выбранной строки через rowState.
Однако всякий раз, когда я пытаюсь выбрать строку на любой странице, которая не является первой, она сразу же возвращает меня к первой странице, , хотя выбор, кажется, работает нормально .
Из того, что я пытался изменить здесь и там, хотя это было очевидно с самого начала, проблема в функции onRowClick. Я изменил его на простой console.log, и он не возвращает меня на первую страницу при щелчке строк на других страницах (console.log работает как задумано).
Я думаю, что на самом деле это может бытьчто-то простое, но я начинающий, когда дело доходит до Интернета, поэтому я понятия не имею, в чем конкретно проблема, и как ее исправить. Я также был бы признателен за помощь с этой rowPerPageOptions , которую я видел на странице API разбивки на таблицы, хотя я не уверен, будет ли она использоваться здесь. Большое спасибо!