Javascript 草稿js:自动换行

Javascript 草稿js:自动换行,javascript,reactjs,rich-text-editor,draftjs,Javascript,Reactjs,Rich Text Editor,Draftjs,我正在尝试使用facebook的JS草稿框架实现一个编辑器,该框架将限制为50个字符的行 我不希望使用css将行打断,我希望当达到50个字符的限制时,它们能够真正打断成单独的块 换行符应该出现在超过第50个字符的单词前面的最后一个空格处(类似于css中的wordwrap:break-word) 当然,我需要选择留在新线的末端 我不知道从哪里开始。有什么想法吗 我已经创建了一个js代码笔草稿,其中包含当前editorState的预览,以便轻松启动,只是不确定从何处开始: 更新: 作为对蒋YD的

我正在尝试使用facebook的JS草稿框架实现一个编辑器,该框架将限制为50个字符的行

我不希望使用css将行打断,我希望当达到50个字符的限制时,它们能够真正打断成单独的块

换行符应该出现在超过第50个字符的单词前面的最后一个空格处(类似于css中的
wordwrap:break-word

当然,我需要选择留在新线的末端

我不知道从哪里开始。有什么想法吗

  • 我已经创建了一个js代码笔草稿,其中包含当前editorState的预览,以便轻松启动,只是不确定从何处开始:
更新:
作为对蒋YD的回答的回应,我认为从块的末尾提取文本并用它创建一个新块不是一个好主意。。不确定格式化状态将保持多久。我认为这个解决方案应该与一些选择操作一起使用。

我也遇到了同样的问题,我将一个块分割成一个块,并且必须给新的分割块一些元数据

获取分割后创建的下一个块的关键点是一个棘手的部分。我是这样做的

const selection = editorState.getSelection();
let contentState = editorState.getCurrentContent();

contentState = Modifier.splitBlock(contentState, selection);

const currentBlock = contentState.getBlockForKey(selection.getEndKey());
const nextBlock = contentState
  .getBlockMap()
  .toSeq()
  .skipUntil(function(v) {
    return v === currentBlock;
  })
  .rest()
  .first();

const nextBlockKey = nextBlock.getKey();

const nextBlockEmptySelection = new SelectionState({
  anchorKey: nextBlockKey,
  anchorOffset: 0,
  focusKey: nextBlockKey,
  focusOffset: 0
});

contentState = Modifier.setBlockData(
  contentState,
  nextBlockEmptySelection,
  Map()
    .set("data1", "Hello this is block data")
    .set("data2", 3)
);