Моя строка содержит подробный вид, связанный с ней. Я хочу переключаться между просмотром деталей и представлением строки, когда пользователь дважды щелкает по строке. Для меня ограничением является то, что я не уверен, где мне следует определять флаг. Согласно моим требованиям флаг должен быть связан с каждой строкой.
Я закончил почти все, кроме этого флага. пример кода
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);