在DraftJS中将实体添加到其自己的块中

时间:2018-09-01 18:17:31

标签: reactjs wysiwyg draftjs

因此,我正在尝试为我的项目创建一个相当简单的WYSIWYG BBCode编辑器,以此来为我围绕DraftJS的思想提供机会。我一直在关注一些教程,并以react-rte为例(因为它具有我所需要的99%的功能,并且看起来相对易于理解)。

我遇到的问题是react-rte内联插入图像实体(它在当前选择中添加一个空格,然后将条目绑定到该空格),如下所示:

const addEntity = (editorState, type, mutability = 'MUTABLE', data = {}) => {
    let currentContent = editorState.getCurrentContent();
    let selection = editorState.getSelection();
    currentContent = currentContent.createEntity(type, mutability, data);
    let entityKey = currentContent.getLastCreatedEntityKey();
    return Modifier.insertText(currentContent, selection, ' ', null, entityKey);
}

我希望每个图像(和视频都一样)位于其自己的单独块中,并使其没有其他任何内容可写入该块。 我在megadraft中找到了我所追求的行为的示例,但是我无法通过其代码来找到正确的实现。

1 个答案:

答案 0 :(得分:0)

经过数小时的反复试验(和大量手册),找到了解决方案。

 function getItemPrice(item_id, cb) {
   pool.query('SELECT item_price FROM bank WHERE item_id ='+item_id, function(err, row) {
     return cb(row[0].item_price);
   });
 }

 getItemPrice(id, function(row) {
   console.log('Your row', row);
 });