我正在尝试围绕Draft.js 中的自定义块组件进行思考,并且我正在关注本教程。
本教程提到了一种检测输入并进入自定义块模式的方法,在这种情况下,[]
当输入块为空时,我们进入 todo 模式并渲染 TodoBlock。
现在,由于我们handleBeforeInput
用于检测是否需要进入 todo 模式,我们将 liveeditorState
作为回调并能够避免竞争条件。
我想通过按下外部按钮来实现自定义块状态,在这种情况下,分隔模式来呈现 DividerBlock 但在自定义按钮中,我只有本地组件editorState
可以使用。
我遇到了竞态条件,无法进入自定义阻止模式。
这是迄今为止我探索的一个代码框。
因此,总而言之,有两个自定义块:-
TodoBlock - 通过 handleBeforeInput 进入 todo 块模式,即获取实时编辑器状态回调,这有效。
DividerBlock - 通过外部按钮进入分隔块模式,即通过本地组件获取编辑器状态,这可能是陈旧的,这不起作用