5

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

我有责任在没有EditorBlockwhenreadOnly的情况下渲染我的块true吗?我是否有责任通过 将readOnly值传播到我的自定义块渲染器blockProps

4

2 回答 2

7

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

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

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

于 2016-05-04T10:00:59.440 回答
4

将 readOnly={readOnly} 传递给 Editor 可以解决问题。

<Editor
  readOnly={readOnly}
/>
于 2018-07-23T08:52:06.390 回答