如何测试draftjs编辑器的内容是否为空?
我现在唯一的想法是将编辑器的对象与此函数返回的对象进行比较:EditorState.createEmpty().getCurrentContent()
只需在ContentState
上使用hasText函数:
editorState.getCurrentContent().hasText()
draftjs
的文档,似乎没有一种直截了当的方法来检查编辑器状态是否为空。我认为他们将其留作实现细节,因为“空”含义不明确,可能是因为即使编辑器状态为空,它仍包含其他信息,如光标位置、占位符等,这些可能不是我们想要检查的确切类型的内容。如果我错了,请告诉我是否有帮助。 - kaushik94 contentState.hasText() && contentState.getPlainText().length > 0
export const isEmptyDraftJs = (rawState) => {
if (!rawState || _.isEmpty(rawState)) { // filter undefined and {}
return true;
}
const contentState = convertFromRaw(rawState);
return !(contentState.hasText() && (contentState.getPlainText() !== ''));
};
我不确定它是否完美,但我使用上面的代码。
当您仅添加图像时,会有一个空格字符,因此getPlainText()
只能过滤图像draftJS。
const text=editorState.getCurrentState().getPlainText()
return text===''