Closed
Description
描述问题 Describe the problem
使用 API /api/block/appendBlock
往超级块中插入内容时新插入内容位置渲染错误, 刷新文档后位置恢复正常
复现步骤:
- 新建一个文档, 文档 ID 为
20220317031809-f4a13aj
- 使用 API
/api/block/appendBlock
在该文档中插入一个超级块
请求体为:
{
"data": "{{{row\n123\n}}}",
"dataType": "markdown",
"parentID": "20220317031809-f4a13aj"
}
响应体:
{
"code": 0,
"msg": "",
"data": [
{
"doOperations": [
{
"action": "insert",
"data": "<div data-node-id=\"20220317031830-95t5u77\" data-node-index=\"1\" data-type=\"NodeSuperBlock\" class=\"sb\" data-sb-layout=\"row\"><div data-node-id=\"20220317031830-ggvqci0\" data-type=\"NodeParagraph\" class=\"p\"><div contenteditable=\"true\" spellcheck=\"false\">123</div><div class=\"protyle-attr\" contenteditable=\"false\"></div></div><div class=\"protyle-attr\" contenteditable=\"false\"></div></div>",
"id": "20220317031830-95t5u77",
"parentID": "20220317031809-f4a13aj",
"previousID": "20220317031809-yypzewx",
"retData": null
}
],
"undoOperations": null
}
]
}
实时渲染样式:
注: 这里为了方便调试, 使用了如下自定义 css 样式
.protyle-wysiwyg div[data-node-id]::after {
content: attr(data-node-id);
font-size: 12px;
}
- 再次使用 API
/api/block/appendBlock
插入一个超级块, 不过这次请求体parentID
属性设置为上一步插入的超级块的 ID20220317031830-95t5u77
{
"data": "{{{row\n456\n}}}",
"dataType": "markdown",
"parentID": "20220317031830-95t5u77"
}
响应体:
```json
{
"code": 0,
"msg": "",
"data": [
{
"doOperations": [
{
"action": "insert",
"data": "<div data-node-id=\"20220317032330-tmsdncw\" data-node-index=\"1\" data-type=\"NodeSuperBlock\" class=\"sb\" data-sb-layout=\"row\"><div data-node-id=\"20220317032330-iyoar7f\" data-type=\"NodeParagraph\" class=\"p\"><div contenteditable=\"true\" spellcheck=\"false\">456</div><div class=\"protyle-attr\" contenteditable=\"false\"></div></div><div class=\"protyle-attr\" contenteditable=\"false\"></div></div>",
"id": "20220317032330-tmsdncw",
"parentID": "20220317031830-95t5u77",
"previousID": "",
"retData": null
}
],
"undoOperations": null
}
]
}
实时渲染样式:
这里可以看出, 块插入到了内容为 123
的段落的前方
4. 再次使用 API /api/block/appendBlock
插入一个超级块, parentID
属性设置不变, 依旧为 20220317031830-95t5u77
{
"data": "{{{row\n789\n}}}",
"dataType": "markdown",
"parentID": "20220317031830-95t5u77"
}
响应体:
```json
{
"code": 0,
"msg": "",
"data": [
{
"doOperations": [
{
"action": "insert",
"data": "<div data-node-id=\"20220317032705-uhbkbw6\" data-node-index=\"1\" data-type=\"NodeSuperBlock\" class=\"sb\" data-sb-layout=\"row\"><div data-node-id=\"20220317032705-d1ftjyo\" data-type=\"NodeParagraph\" class=\"p\"><div contenteditable=\"true\" spellcheck=\"false\">789</div><div class=\"protyle-attr\" contenteditable=\"false\"></div></div><div class=\"protyle-attr\" contenteditable=\"false\"></div></div>",
"id": "20220317032705-uhbkbw6",
"parentID": "20220317031830-95t5u77",
"previousID": "20220317032330-tmsdncw",
"retData": null
}
],
"undoOperations": null
}
]
}
实时渲染样式:
这里可以看出, 块依旧插入到了内容为 123
的段落的前方
期待的结果 Expected result
无需刷新文档, 插入的块顺序即渲染为理论状态
版本环境 Version environment
- Version: 1.9.0
Metadata
Metadata
Assignees
Type
Projects
Relationships
Development
No branches or pull requests
Activity
[-]使用 API `/api/block/appendBlock` 往超级块中插入内容时新插入内容位置渲染错误[/-][+]使用 API `/api/block/appendBlock` 往超级块中插入内容后渲染错误[/+]appendBlock
插入多块时顺序不正确 #4409appendBlock
插入多块时顺序不正确 #4498