デフォルトでは、draft.js は 2 つの空行 (atimic の前に 1 行、atimic の後に 1 行) を持つ任意のアトミック タイプ ブロックを配置します。この動作は、draft.js でのアトミックな選択の欠如の結果であり、ここで説明されています。どうすればそれらの行を取り除くことができますか? Modifier に適切な関数が見つかりません。たぶん、誰かがこの問題を解決するための別の解決策を持っているかもしれません。
更新:私は私のために働くsolutionを見つけます:
const { editorState } = this.props;
const contentState = editorState.getCurrentContent();
const entityKey = Entity.create('image', 'IMMUTABLE', {src: this.state.url});
const with_atomic = AtomicBlockUtils.insertAtomicBlock(editorState, entityKey, ' ');
const new_content_state = with_atomic.getCurrentContent();
const block_map = new_content_state.getBlockMap();
const current_atomic_block = block_map.find(block => {
if (block.getEntityAt(0) === entityKey) {
return block
}
});
const atomic_block_key = current_atomic_block.getKey();
const block_before = new_content_state.getBlockBefore(atomic_block_key).getKey();
const new_block_map = block_map.filter(block => {
if ((block.getKey() !== block_before) ) {
return block
}
});
const newContentState = contentState.set('blockMap', new_block_map);
const newEditorState = EditorState.createWithContent(newContentState);
this.props.onChange(newEditorState);