Как получить все данные строки на RowClick в MUI Datatables в ReactJS
Попробуем MUI Datatables компонент. Я добавляю функцию onRowClick и получаю значения индекса. Как я могу получить данные для всей строки onRowClick?
render() {
const options = {
filterType: "dropdown",
responsive: "scroll",
sort: "true",
onRowClick: () => {
this.state.data.map((row, rowData) => {
alert(row);
});
}
};
Я получаю данные для таблицы через API:
componentDidMount() {
fetch("https://randomuser.me/api/?results=10&nat=us")
.then(Response => Response.json())
.then(findresponse => {
console.log(findresponse.results.length);
var data = [];
if (findresponse.results.length > 0) {
data = findresponse.results.map((value, index) => {
return [
...data,
value.gender,
value.name.first,
value.location.city
];
});
}
console.log(data);
this.setState({
data: data
});
console.log(this.state.data);
});
}
render() {
const options = {
filterType: "dropdown",
responsive: "scroll",
sort: "true",
onRowClick: () => {
alert("hiiii");
this.state.data.map((row, rowData) => {
//alert(index);
// alertrow);
});
}
};
1 ответ
onRowClick
получает два аргумента - rowData
а также rowMeta
(rowIndex
а также dataIndex
кликаемой строки). rowData
содержит (как следует из названия) полные данные строки.
Так что ваши render()
Метод должен выглядеть примерно так:
render() {
const options = {
filterType: "dropdown",
responsive: "scroll",
sort: "true",
onRowClick: (rowData, rowMeta) => {
console.info(rowData); // full row data
// ... any other logic
}
};
const props = { /* some more props for the table */ };
return (
<MUIDataTable
...props
options={options}
/>
);