【发布时间】:2016-10-30 02:26:33
【问题描述】:
如何测试draftjs编辑器的内容是否为空?
我现在唯一的想法是与此函数返回的对象进行对象比较:EditorState.createEmpty().getCurrentContent()
【问题讨论】:
如何测试draftjs编辑器的内容是否为空?
我现在唯一的想法是与此函数返回的对象进行对象比较:EditorState.createEmpty().getCurrentContent()
【问题讨论】:
contentState.hasText() && contentState.getPlainText().length > 0
【讨论】:
只需在ContentState 上使用hasText 函数:
editorState.getCurrentContent().hasText()
【讨论】:
draftjs 的文档,似乎没有一种直接的方法来检查编辑器状态是否为空。我认为他们将此作为实现细节留下,因为尚不清楚empty 的含义是什么,可能是因为即使编辑器状态为empty,它也包含其他信息,如光标位置、占位符等可能不是我们要检查的确切内容类型。我可能是错的,如果这有帮助,请告诉我。
export const isEmptyDraftJs = (rawState) => {
if (!rawState || _.isEmpty(rawState)) { // filter undefined and {}
return true;
}
const contentState = convertFromRaw(rawState);
return !(contentState.hasText() && (contentState.getPlainText() !== ''));
};
我不确定它是否完美,但我使用上面的代码。
当你只添加图片时,有一个空格字符,所以getPlainText() 只能过滤图片draftJS。
【讨论】: