我有以下代码:

 const sampleMarkup = "<div>Insert Text Here</div>";

    const blocksFromHTML = convertFromHTML(sampleMarkup);
    let builtContentState = ContentState.createFromBlockArray(blocksFromHTML.contentBlocks);
    console.log("builtContentState", builtContentState.getBlocksAsArray());


在我的开发环境中,控制台日志如下所示:

javascript - DraftJS getBlocksAsArray()返回生产环境中的数组的数组,但仅返回dev中的数组(并且有效)-LMLPHP

在生产环境中,它看起来像这样:

javascript - DraftJS getBlocksAsArray()返回生产环境中的数组的数组,但仅返回dev中的数组(并且有效)-LMLPHP

不用说,它们看起来和相同的代码非常不同。除此之外,构建中的所有内容都可以工作(这是一个相当大的项目,其中包含许多活动部件,节点模块等),因此我不确定是什么原因导致了此特定问题。

从根本上讲,问题是相同的输入和结果,我从getBlocksAsArray()获得了不同的输出;

const sampleMarkup = "<div>Insert Text Here</div>";

const blocksFromHTML = convertFromHTML(sampleMarkup);

let builtContentState = ContentState.createFromBlockArray(blocksFromHTML.contentBlocks);
console.log("builtContentState", builtContentState.getBlocksAsArray());

return <div>{JSON.stringify(builtContentState)}</div>


JSX输出显示相同形状的对象,但getBlocksAsArray()具有不同的输出(如上面的屏幕截图所示)

最佳答案

我发现这是由于我的package.json中包含了比draftjs支持的版本新的immutablejs版本所致-不确定为什么这会影响draftjs,但看起来像在缩小过程中,getBlocksAsArray()导线在draftjs的内部包和我包含在package.json中的那个

07-24 09:39