我正试着在draft.js中围绕custom block components,并且我正在关注tutorial。
本教程提到了一种检测输入并进入自定义块模式的方法,在这种情况下,当块为空时输入[]
,我们进入todo模式并渲染TodoBlock。
现在,由于我们正在使用handleBeforeInput
来检测我们是否需要进入待办事项模式,因此我们将实时editorState
作为回调并且能够avoid race conditions。
我希望通过按下外部按钮来实现自定义阻止状态,在这种情况下,分隔符模式可以渲染DividerBlock,但是在自定义按钮中,我只能使用本地组件editorState
。
我遇到了race condition但我无法进入自定义阻止模式。
到目前为止,这是我探索的codesandbox。
因此,总而言之,有两个自定义块: -
TodoBlock - 通过handleBeforeInput进入todo阻止模式,即获取实时编辑器状态回调,这是有效的。
DividerBlock - 通过外部按钮进入分隔符块模式,即通过本地组件获取编辑器状态,这可能是陈旧的,但这不起作用