【问题标题】:Draft.js editor is emptyDraft.js 编辑器为空
【发布时间】:2016-10-30 02:26:33
【问题描述】:

如何测试draftjs编辑器的内容是否为空?

我现在唯一的想法是与此函数返回的对象进行对象比较:EditorState.createEmpty().getCurrentContent()

【问题讨论】:

标签: reactjs draftjs


【解决方案1】:
 contentState.hasText() && contentState.getPlainText().length > 0 

检查

  • 空白

【讨论】:

    【解决方案2】:

    只需在ContentState 上使用hasText 函数:

    editorState.getCurrentContent().hasText()
    

    【讨论】:

    • 这是否适用于只有图像等的编辑器状态?我已经阅读了draftjs 的文档,似乎没有一种直接的方法来检查编辑器状态是否为空。我认为他们将此作为实现细节留下,因为尚不清楚empty 的含义是什么,可能是因为即使编辑器状态为empty,它也包含其他信息,如光标位置、占位符等可能不是我们要检查的确切内容类型。我可能是错的,如果这有帮助,请告诉我。
    • 这很好。但问题是,即使用户只输入了空格,它也会返回 true。如何检查这种情况?
    【解决方案3】:
    export const isEmptyDraftJs = (rawState) => {
      if (!rawState || _.isEmpty(rawState)) { // filter undefined and {}
        return true;
      }
      const contentState = convertFromRaw(rawState);
      return !(contentState.hasText() && (contentState.getPlainText() !== ''));
    };
    

    我不确定它是否完美,但我使用上面的代码。

    当你只添加图片时,有一个空格字符,所以getPlainText() 只能过滤图片draftJS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-24
      • 2021-10-10
      • 2021-02-23
      • 1970-01-01
      相关资源
      最近更新 更多