Draft.js 编辑器为空

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

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

我现在唯一的想法是与从此函数返回的对象进行对象比较:

EditorState.createEmpty().getCurrentContent()

reactjs draftjs
5个回答
61
投票

只需在 ContentState 上使用

hasText
函数即可:

editorState.getCurrentContent().hasText()

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===''

0
投票

const [editorState, setEditorState] = useState(EditorState.createEmpty());
const [errorMessage, setErrorMessage] = useState('');


const handleSubmit = () => {
  const contentState = editorState.getCurrentContent();
  const rawContentState = convertToRaw(contentState);
  const text = rawContentState.blocks[0].text.trim();

  if (text === '') {
    setErrorMessage('Please enter some content before submitting.');
  } else {
    // Proceed with submission logic
    setErrorMessage('');
    // Your submission logic goes here
  }
};

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