在我的 Slate.js 编辑器的自定义元素中,我有更新元素属性的逻辑:
const changeProps = ({name, opts, defaultValue}: TemplateBlockProps) => {
let path = ReactEditor.findPath(editor, element)
let newProps = {name, opts, defaultValue}
Transforms.setNodes(editor, newProps, {at:path})
}
这个想法是您可以用来react-select
在模板字段中创建和选择值。但是,当调用Transforms.setNodes
更新 Slate DOM 中的节点属性时,React 给我一个无限循环错误,说它重新渲染太多次。逻辑本身类似于 Slate 网站上的嵌入示例。这里发生了什么?如何修复?
这里的代码沙盒: https ://codesandbox.io/s/compassionate-meadow-fbrne ?file=/src/App.tsx