0

我已经用我的案例制作了一个代码框示例,需要帮助才能使其正常工作。这是示例的链接

复制步骤:

  1. 在 jodit 编辑器上输入一些内容
  2. 鼠标单击编辑器外部,您将看到显示onBlur已触发的日志。
  3. </>使用左上角的图标切换到代码编辑模式。
  4. 修改html上的东西。
  5. 在编辑器外部单击鼠标,您将看不到任何其他日志。

我最初的目标是确认这种机制是设计使然还是错误,并且在在 github 存储库上打开票证之前,我尝试向社区询问。

您可能还注意到,在我的示例中,日志系统无法正常工作。

我试图堆叠所有日志 - onChangeonBlur但它只显示最后一个日志。当我点击Add按钮时它工作正常。也许反应钩子的使用有问题。

有人可以帮我解决上述问题吗?

  1. onBlur在编辑器中的代码编辑模式下不会触发Jodit。它是设计使然还是错误?
  2. 为什么我只看到最新的日志而不是堆积的日志?

先感谢您。

4

1 回答 1

0
  1. onBlur没有被调用,因为里面jodit有一个单独textarea的用于显示代码,这要么是一个错误,jodit-react要么jodit本身就是一个错误
  2. 内部jodit-react回调 fortextarea被添加到内部useEffect,仅在config更改时调用。
    为了正确显示日志,您需要修复将日志保存到状态的方式
const appendLog = useCallback(
  (message) => {
    setLogs(oldLogs => [...oldLogs, message]);
  },
  []
);
于 2021-11-14T15:38:27.313 回答