我试图从contentState中删除所有实体。
这样做的首选方式是什么?
答案 0 :(得分:1)
不确定规范方式是什么,但我已经能够使用Modifier.applyEntity()
:https://draftjs.org/docs/api-reference-modifier.html#applyentity来实现。
您基本上需要遍历所有块,并在每个块的整个文本范围内使用该方法。所以像这样:
import {Modifier, SelectionState} from 'draft-js';
function clearEntityRanges(contentState){
contentState.getBlockMap().forEach(block => {
const blockKey = block.getKey();
const blockText = block.getText();
// You need to create a selection for entire length of text in the block
const selection = SelectionState.createEmpty(blockKey);
const updatedSelection = selection.merge({
//anchorOffset is the start of the block
anchorOffset: 0,
// focustOffset is the end
focusOffset: blockText.length
})
Modifier.applyEntity(contentState, updatedSelection, null);
});
return contentState
}