Draft.js编辑器为空。

16

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

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


请查看以下链接:https://stackoverflow.com/questions/47420136/how-to-check-empty-spaces-in-draft-js-editor/68093543#68093543 - Marcello Manuel Borges da Cost
4个回答

61

只需在ContentState上使用hasText函数:

editorState.getCurrentContent().hasText()

3
这是否适用于只包含图像等内容的编辑器状态?我已阅读了 draftjs 的文档,似乎没有一种直截了当的方法来检查编辑器状态是否为空。我认为他们将其留作实现细节,因为“空”含义不明确,可能是因为即使编辑器状态为空,它仍包含其他信息,如光标位置、占位符等,这些可能不是我们想要检查的确切类型的内容。如果我错了,请告诉我是否有帮助。 - kaushik94
这很好。但问题在于,即使用户只输入了空格,它也会返回true。如何检查这种情况? - sktguha

6
 contentState.hasText() && contentState.getPlainText().length > 0 

检查

  • 空值
  • 空格

2
export const isEmptyDraftJs = (rawState) => {
  if (!rawState || _.isEmpty(rawState)) { // filter undefined and {}
    return true;
  }
  const contentState = convertFromRaw(rawState);
  return !(contentState.hasText() && (contentState.getPlainText() !== ''));
};

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

当您仅添加图像时,会有一个空格字符,因此getPlainText()只能过滤图像draftJS。


0
const text=editorState.getCurrentState().getPlainText()
return text===''

1
虽然这段代码可能回答了问题,但提供有关它如何以及/或为什么解决问题的附加上下文将改善答案的长期价值。您可以在帮助中心找到有关如何编写良好答案的更多信息:https://stackoverflow.com/help/how-to-answer。祝你好运。 - nima

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接