Draft-js 更好地保存和检索来自 MySql 的内容
Draft-js better way to save and retrive content form MySql
我在 reactjs 应用程序中使用带有一些插件的 draft-js 作为编辑器。
我正在寻找一种在数据库上存储数据并检索该数据的好方法。
我认为更好的解决方案是以两种不同的格式保存数据:
- 序列化原始 json 最终转换回内容以在草稿中重新编辑
- 在查询和 post 视图中使用的另一种格式
在我的 post 我有:
- 提到
- 标签
- links
现在我想只存储 link 和标签的文本,并在前端使用 linkify 来呈现 href 标签,但我正在寻找一个很好的解决方案来解决这些问题。也许是带有提及文本和用户 ID 的序列化字段?
我正在寻找可以帮助我按内容搜索 post 并通过快速查询检索大量内容的解决方案。
这是两行的 draft-js json,带有标签和提及(在 entityMap 中)
{
"blocks": [
{
"key": "19vrn",
"text": "row 1 with mention and #hashtag",
"type": "unstyled",
"depth": 0,
"inlineStyleRanges": [],
"entityRanges": [
{
"offset": 11,
"length": 5,
"key": 0
}
],
"data": {}
},
{
"key": "46e6h",
"text": "row 2",
"type": "unstyled",
"depth": 0,
"inlineStyleRanges": [],
"entityRanges": [],
"data": {}
}
],
"entityMap": {
"0": {
"type": "mention",
"mutability": "SEGMENTED",
"data": {
"mention": {
"name": "mention",
"id": 53,
"avatar": "b26be1f0-942b-11e9-bebb-a788574b8d0e.jpg",
"title": ""
}
}
}
}
}
对于那些正在寻找同样问题的人,这是我解决这个问题的方法:
- 我保存 postContent 只有文本
this.state.editorState.getCurrentContent().getPlainText('')
- 我保存 postRawContent 以供将来编辑:
convertToRaw(this.state.editorState.getCurrentContent())
;
- 我从 postRawContent 中提取实体图以供提及
- 在前端,我遍历提及项并将@mention 替换为正确的 html 和 href
希望对大家有所帮助
我在 reactjs 应用程序中使用带有一些插件的 draft-js 作为编辑器。
我正在寻找一种在数据库上存储数据并检索该数据的好方法。
我认为更好的解决方案是以两种不同的格式保存数据:
- 序列化原始 json 最终转换回内容以在草稿中重新编辑
- 在查询和 post 视图中使用的另一种格式
在我的 post 我有:
- 提到
- 标签
- links
现在我想只存储 link 和标签的文本,并在前端使用 linkify 来呈现 href 标签,但我正在寻找一个很好的解决方案来解决这些问题。也许是带有提及文本和用户 ID 的序列化字段?
我正在寻找可以帮助我按内容搜索 post 并通过快速查询检索大量内容的解决方案。
这是两行的 draft-js json,带有标签和提及(在 entityMap 中)
{
"blocks": [
{
"key": "19vrn",
"text": "row 1 with mention and #hashtag",
"type": "unstyled",
"depth": 0,
"inlineStyleRanges": [],
"entityRanges": [
{
"offset": 11,
"length": 5,
"key": 0
}
],
"data": {}
},
{
"key": "46e6h",
"text": "row 2",
"type": "unstyled",
"depth": 0,
"inlineStyleRanges": [],
"entityRanges": [],
"data": {}
}
],
"entityMap": {
"0": {
"type": "mention",
"mutability": "SEGMENTED",
"data": {
"mention": {
"name": "mention",
"id": 53,
"avatar": "b26be1f0-942b-11e9-bebb-a788574b8d0e.jpg",
"title": ""
}
}
}
}
}
对于那些正在寻找同样问题的人,这是我解决这个问题的方法:
- 我保存 postContent 只有文本
this.state.editorState.getCurrentContent().getPlainText('')
- 我保存 postRawContent 以供将来编辑:
convertToRaw(this.state.editorState.getCurrentContent())
; - 我从 postRawContent 中提取实体图以供提及
- 在前端,我遍历提及项并将@mention 替换为正确的 html 和 href
希望对大家有所帮助