当某个元素被删除时触发事件

Trigger event when a certain element has been removed

我正在使用出色的 Slate 编辑器构建一个编辑器,但我在执行某项任务时遇到了问题。我已经构建了一个拖放式图像上传,可以成功上传图像(通过 API,与 Slate 无关)并将它们插入到编辑器中。但是,如果用户在编辑器中删除图像,我想从服务器中删除图像。当从 state 中删除某个 node 类型时,有没有办法触发函数?

我刚刚开始研究 slate 并且正在研究同样的问题。我的解决方案是:

  • 创建用于图像处理的插件函数(options) => { /* plugin object */}
  • 在这个插件函数中,在 schema.nodes 中,return 我的主要 Image 组件的包装器,它从选项参数设置了一个 onDelete 道具。
//ImagePlugin function

export default function ImagePlugin(options) {
  return {
    schema: {
      nodes: {
        image: props => <Image
          {...Object.assign({ onDelete: options.onDelete }, props) } />
      }
    }
  }