用draftjs的ContentBlock创建一个表格并带有数据
时间: 2024-02-24 18:59:41 浏览: 140
draft-js-transactions:将多个相互依赖的编辑暂存到草稿EditorState并一次应用它们
要使用Draft.js的ContentBlock创建一个表格,你需要先创建一个新的ContentBlock对象,然后设置它的类型为'table'. 然后,你可以添加行和列,以及设置每个单元格的数据。下面是一个示例代码:
```javascript
const rows = 3;
const cols = 3;
const tableBlock = new ContentBlock({
key: genKey(),
type: 'table',
text: '',
characterList: List(),
data: Map({
rows: rows,
cols: cols
})
});
let tableData = [];
for (let i = 0; i < rows; i++) {
let rowData = [];
for (let j = 0; j < cols; j++) {
rowData.push(`row ${i} col ${j}`);
}
tableData.push(rowData);
}
for (let i = 0; i < rows; i++) {
for (let j = 0; j < cols; j++) {
const cellBlock = new ContentBlock({
key: genKey(),
type: 'table-cell',
text: tableData[i][j],
characterList: List(),
data: Map({
row: i,
col: j
})
});
// add the cell block to the table block
tableBlock = tableBlock.merge({
characterList: tableBlock.getCharacterList().concat(cellBlock.getCharacterList()),
children: tableBlock.getChildren().push(cellBlock)
});
}
}
```
这将创建一个3x3的表格,每个单元格都包含一个字符串数据。你可以根据需要修改代码来设置表格大小和数据。
阅读全文