关于 onNodesChange 在 shouldResize 为 false 时禁止重新调整时触发的问题
由KHE-OKL 2025年7月29日 原文发布 嗨,RF团队,
我们使用节点响应器组件, 我们注意到,即使应该何时还原假返回(从而防止调整大小),NodesChange事件仍以“dimensions”变化事件来起火,其中包括被拒绝的维度。 这使得我们内部的回放流状态(node. measured.width/hight)与节点不一致. 宽/高,导致渲染问题。
为明确起见,当应回复错误时,不会触发回调,这是预期的。 我们依赖Resize调用更新节点. 宽度和节点. height in our Redux station(然后在NodesChange上适用于RF节点),因此图中反映了正确的节点大小. 然而,NodesChange上仍然有被否定的尺寸并重新大小=虚假. 这导致拒绝的宽度/高度被应用到反应流节点的内部状态(测量为.width/高),导致尺寸不一致和UI不正确.
请见此记录( 节点识别器是隐形的, 但您可以使用可见的 4 个手柄查看其边界)
https://GitHub.com/user-attachments/assets/7797c96a-2490-4ccc-b3ad-08a184ea6e13 (中文(简体) ).
拖放和调整行为大小的比较也不一致:
当一个节点被拖出边界时,我们收到的最后一个事件是{拖入:假}正确报告最后一个有效位置
但是,当重定大小被拒绝时(应当回复错误),最后一个带有{重定大小:假}的事件并不反映最后一个有效的维度——它反映了尝试(但被拒绝)的维度.
而且,我们注意到,在ResizeEnd上得到的维度与NodesChange事件的最后维度相同,这似乎是个错误。
目前我们忽略了维度变化, 然而,这种过滤感觉并不一致.
我们想知道这种行为是否是故意的,即如果在NodesChange上的设计是放出所有变化(包括被否决的改变),让消费者能够决定如何处理这些变化? 或者防止的改变规模的事件最好不要排放出来? 如果这是设计出来的,我们至少应该保持拖放和调整事件规模之间的一致行为.
请告诉我,你有什么建议的方法 来处理这些“不开放” 调整大小的事件 一致,或如果这可能 改善内部。
谢谢!
内容来源: xyflow/xyflow