reactjs - 双击行时自定义行渲染
问题描述
我的每一行都有与之相关的详细视图。当用户双击行时,我想在详细信息视图和行视图之间切换。对我的限制是我不确定应该在哪里定义标志。根据我的要求,标志应该与每一行相关联。
我已经完成了几乎所有的事情,除了那个标志的事情。代码示例
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);
解决方案
推荐阅读
- oracle-apex - 如何在 Oracle Apex 上为社交登录用户添加授权角色?
- javascript - Javascript 正则表达式匹配自定义标签外部/内部问题
- github-actions - 在 with 块中使用定义的环境变量进行 github 操作
- java - 键正确时由于 ClassCastException 而无法在 Java 中打印 LinkedHasMap
- javascript - 表单元素上的自定义引导验证
- php - Axios/Vue:如何判断 Axios 是否正常工作?
- python - ERROR Utils: Aborting task java.lang.UnsupportedOperationException: PrimitiveType coder: unsupported data type null
- google-apps-script - 将谷歌表格中的多行数据更新为谷歌表单的多个部分
- java - Java 变量不会被不同的实例/线程更新
- powershell - 获取所有文件的目录名、文件夹名和个数