如何从原始DraftJS数据中获取内容长度?

问题描述 投票:0回答:1

在运行完 DraftJS 编辑器后,我将其内容作为 JSON 字符串存储在数据库中

convertToRaw(editorState.getCurrentContent())

数据库中存储内容的示例:

{"blocks": [{"key": "1m9md", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "c8gek", "data": {}, "text": "Lorem ipsum dolor sit amet, eu habitasse magna aliquam non et faucibus, aliquet et ante tempus vestibulum pellentesque, ligula curabitur. Eum torquent dapibus est, ac consectetuer integer. Luctus pellentesque ut pellentesque. Libero id lorem bibendum, sed elementum, adipiscing mollis, aenean pellentesque ligula nonummy pellentesque ornare urna, sit a sagittis wisi rhoncus tellus congue. Risus tristique blandit in nascetur, mauris quisque sed erat error integer accumsan, ante facilisi. Libero proin nunc vestibulum tempus, consectetuer aliquam sed velit morbi quis, molestie accumsan in, lacus eu, aliquam odio porta tellus ac. Praesent aliquet.", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "7mv98", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "63ck4", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}], "entityMap": {}}

现在,当以 HTML 形式向用户显示此内容时,我想检查他们是否在每个部分中实际在 DraftJS 编辑器中输入了任何文本。即使他们将其留空,数据库也会存储:

{"blocks": [{"key": "6n2bu", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}], "entityMap": {}}

似乎没有明确的方法来以编程方式检查内容的长度(或者它是否存在)。

我正在寻找一种方法来检查内容是否存在,然后再将其转换为 HTML 并使用 React 进行渲染。

javascript reactjs draftjs
1个回答
1
投票

您可以使用 ContentState.hasText()

为了查看是否为空。

否则,您可以随时调用 ContentState.getPlainText() 来获取全文,然后即可获取长度。

例如

myContent.getPlainText(' ').length

© www.soinside.com 2019 - 2024. All rights reserved.