My every row has detailed view associated with it. I want to switch between details view and row view when user double click on row. The constrain for me is I am not sure where I should defined the flag. As per my requirements the flag should be associate with every row.
I have finish almost everything except that flag thing. code example
import React from "react";
import ReactDOM from "react-dom";
import ReactDataGrid, { Row } from "react-data-grid";
import "./styles.css";
const columns = [
{ key: "id", name: "ID", editable: true },
{ key: "title", name: "Title", editable: true },
{ key: "complete", name: "Complete", editable: true }
];
const rows = [
{ id: 0, title: "Task 1", complete: 20 },
{ id: 1, title: "Task 2", complete: 40 },
{ id: 2, title: "Task 3", complete: 60 }
];
class Example extends React.Component {
state = { rows };
onGridRowsUpdated = ({ fromRow, toRow, updated }) => {
this.setState(state => {
const rows = state.rows.slice();
for (let i = fromRow; i <= toRow; i++) {
rows[i] = { ...rows[i], ...updated };
}
return { rows };
});
};
rowRenderer = props => {
const { row } = props;
if (row.expand) {
return <div>my Custom view {row.title}</div>;
} else {
return <Row {...props} />;
}
};
switchDetailedView = rowNumber => {
console.log("rowNumber", rowNumber);
};
render() {
return (
<ReactDataGrid
columns={columns}
rowGetter={i => this.state.rows[i]}
rowsCount={3}
onGridRowsUpdated={this.onGridRowsUpdated}
rowRenderer={this.rowRenderer}
enableCellAutoFocus={false}
onRowDoubleClick={this.switchDetailedView}
/>
);
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<Example />, rootElement);