- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一些纯文本内容需要插入到存在的textEditor中,我尝试使用EditorState.push方法,我认为它适用于这种情况。我尝试这样的事情:
const { ContentState: { createFromText }, EditorState: { createWithContent, push }} = DraftJS;
export const pushTextToCurrentEditorState = (text, editorState) => {
const textContentState = createFromText(text);
const newEditorState = push(editorState, textContentState, 'insert-characters');
// debugger;
console.log(editorStateToJSON(editorState))
console.log(editorStateToJSON(newEditorState))
return JSON.parse(editorStateToJSON(newEditorState));
}
结果是 newEditorState
不是合并状态,而是替换一个,旧的 editorState 丢失,newEditorState
变成全新的东西,就像从 text
创建一样>。这里有什么错误的用法吗?或者有其他一些方法可以解决这个问题?
最佳答案
我厌倦了一种复杂的方式,但解决了这个问题。代码在这里:
export const pushTextToCurrentEditorState = (text, editorState) => {
const textContentState = createFromText(text);
const textContentBlocksArr = textContentState.getBlocksAsArray();
const currentBlocksArr = editorState.getCurrentContent().getBlocksAsArray();
const newBlocksArr = currentBlocksArr.concat(textContentBlocksArr);
const newContentState = createFromBlockArray(newBlocksArr);
const newEditorState = createWithContent(newContentState);
return JSON.parse(editorStateToJSON(newEditorState));
}
方式:1. 将内容状态、文本转换为 block 数组;2. 将两个 block 数组组合在一起;3. 使用组合数组创建新的内容状态和编辑器状态;
关于draftjs - 如何将内容状态推送到当前编辑器状态? editorState.push 方法似乎对我不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56901385/
我开始使用 Draft-js 中的装饰器,并且能够渲染 CompositeDecorator 中定义的组件。记录下来的行为效果很好。 也就是说,我正在尝试弄清楚如何从这些组件中访问 editorSta
我正在使用 draftjs 创建富文本编辑器.这是最小的codesandbox所以你知道问题是什么。 所以我有一个辅助函数 getCurrentTextSelection将我选择的文本返回给我: co
有一些纯文本内容需要插入到存在的textEditor中,我尝试使用EditorState.push方法,我认为它适用于这种情况。我尝试这样的事情: const { ContentState: { cr
我正在尝试使用 react-draft-wysiwyg 编辑器完成一些操作后重置编辑器内容。使用 draftjs-utils 中的 clearEditorContent 方法清除所有内容。但是清除内容
因此,我使用 Draft-js 来创建博客文章。当用户创建帖子时,数据被转换为字符串并发送到服务器以进行保存。我像这样转换了 draft-js EditorState:JSON.stringify(c
我正在使用 Draft-js with Formik与 是的 用于验证 Draft EditorState 组件。 我假设我可以通过使用以下 yup 测试来检查 EditorState 是否为空: /
我已使用convertToRaw 将内容保存到数据库中,我正尝试将其加载回draft.js 编辑器以使用户能够重新编辑内容。 draft.js 编辑器包含在 react-modal 中当用户单击内容上
我试图让一个函数仅在 contentState 本身发生变化时运行,而不仅仅是 editorState。 我现在的想法是将旧的 contentState 存储为字符串并将其与新的 contentSta
我是一名优秀的程序员,十分优秀!