当 readOnly 属性为 true 时,如何在 Draft.js 编辑器中使自定义渲染块只读?

Vil*_*niš 5 javascript reactjs draftjs

我正在使用 Draft.jsEditor组件。我有一个通过blockRendererFnprop正确指定的自定义块渲染器。该组件EditorBlock按照Draft 文档中的建议呈现从 Draft-js 导入的内容。在我在自定义块渲染器中获得的道具中,我没有该块是否为只读的信息。至少默认情况下不是。我可以通过 获得它blockProps,但是我觉得我错过了一些东西。就像使用EditorBlock. 就像它可以readOnly从上下文或其他东西中获取价值一样。

这是我的责任,我的渲染块而不EditorBlockreadOnlytrue?我有责任readOnly通过blockProps?将值传播到我的自定义块渲染器?

Vil*_*niš 7

好吧,我在 slack Draftjs 团队得到了这个答案,所以我将在这里总结一下:

设置readOnly为 true应该足以防止onChange整个编辑器中的任何回调。我的问题是一种错误,在这里我已经设置了一个editabletrue自定义块渲染我从返回的blockRendererFn。这导致readOnly标志被覆盖,从而允许在我的自定义块中进行更改。Isaac 将此标记为潜在有害行为。

我的解决方案不是在自定义块渲染器上指定我的块是否可编辑。这样就readOnly可以适当地考虑到,并且我无需再做任何事情。