是否可以通过在编辑器中输入来阻止新的段落节点?

car*_*jaa 3 lexical lexicaljs

I\xc2\xb4m 尝试创建一个基于 Lexical 的“一行”消息组件,但 i\xc2\xb4m 无法阻止 Enter 键创建新段落。

\n

有什么想法如何实现这一点?

\n

I\xc2\xb4ve 添加了样式

\n
white-space: nowrap!important; \n      resize: none;\n
Run Code Online (Sandbox Code Playgroud)\n

和 i\xc2\xb4ve 尝试 MaxLengthPlugin (它可以工作,但如果在那里输入它会创建两行)

\n

还尝试添加

\n
<EditorWrapper ref={onRef} data-testid="editor" \n        onKeyDown={event => {\n            if (event.key === 'Enter') {\n              event.preventDefault();\n            } \n          }}>\n
Run Code Online (Sandbox Code Playgroud)\n

我原以为这会阻止输入新段落,但仍然在编辑器中添加了一个新段落。

\n

小智 9

我能够通过使用registerNodeTransformLineBreakNode创建单行编辑器来创建单行编辑器,以在创建后立即将其删除。这感觉不是最好的解决方案,但它确实有效。

editor.registerNodeTransform(LineBreakNode, (node) => {
  node.remove();
});
Run Code Online (Sandbox Code Playgroud)

我还探索了听命令KEY_ENTER_COMMAND,但这并没有阻止将换行符粘贴到编辑器中。