从 contentState 中删除/清除所有实体
Remove / clear all entities from a contentState
我正在尝试从 contentState 中删除所有实体。
这样做的首选方法是什么?
不确定规范方法是什么,但我已经能够通过使用 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
}
我正在尝试从 contentState 中删除所有实体。
这样做的首选方法是什么?
不确定规范方法是什么,但我已经能够通过使用 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
}