MaterialTable отправляет меня обратно на первую страницу при выборе строки - PullRequest
1 голос
/ 10 ноября 2019

Я изо всех сил пытался заставить Таблицу материалов работать так, как я хочу: мне нужно иметь возможность выбирать по одной строке за раз и использовать ее Состояние для манипулирования ее содержимым. Я основал себя на примерах этого сайта (точнее, на 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 разбивки на таблицы, хотя я не уверен, будет ли она использоваться здесь. Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...