当readOnly prop为true时,如何在Draft.js编辑器中自定义渲染块?

时间:2016-05-03 17:32:24

标签: javascript reactjs draftjs

我正在使用Draft.js blockRendererFn组件。我通过EditorBlock道具正确指定了自定义块渲染器。该组件根据Draft documentation中的建议呈现从draft-js导入的blockProps。在我的自定义块渲染器中的道具中,我没有关于块是否是只读的信息。至少不是默认情况下。我可以通过EditorBlock得到它,但我觉得我错过了什么。就像它在使用readOnly时应该自然地工作一样。就像它可以从上下文或其他东西获得EditorBlock值。

readOnlytrue时,我是否有责任在没有readOnly的情况下呈现我的广告素材?并且我有责任通过blockProps$FilesToFind = Get-ChildItem -Recurse 'c:\s\includes' -File -Include *.cs | Select Name Get-ChildItem -Recurse C:\S -File -Include *.cs | ? { $_.Name -in $FilesToFind -and $_.Directory -notmatch '^c:\s\includes' } | Select Name, Directory 值传播到我的自定义块渲染器吗?

2 个答案:

答案 0 :(得分:2)

嗯,我在松散的draftjs团队得到了回答,所以我要在这里总结一下:

readOnly设置为true应该足以阻止整个编辑器中的任何onChange回调。我的问题是一种错误,我在editable返回的自定义块渲染器中将true设置为blockRendererFn。这导致readOnly标志被覆盖,从而允许我的自定义块中的更改。艾萨克将此标记为可能不受欢迎的行为。

我的解决方案是在自定义块渲染器上不指定我的块是否可编辑。这样就可以正确地考虑readOnly,我不得不做更多的事情。

答案 1 :(得分:1)

将readOnly = {readOnly}传递给编辑器可解决问题。

<Editor
  readOnly={readOnly}
/>