butterfly icon indicating copy to clipboard operation
butterfly copied to clipboard

ReactButterfly setData node top 位置未更新

Open jassonxian opened this issue 3 years ago • 8 comments

The current behavior

更改node 的left值,节点未重绘

The expected behavior

更改node 的left值,节点重绘,位置更新

Your environment(such as: Butterfly version、Browser version、OS and so on)

Butterfly version: butterfly-react: 0.0.37-beta Browser version:

OS:

Steps To Reproduce, Maybe you can provide a simple demo.

jassonxian avatar Jan 11 '22 13:01 jassonxian

因为你的data这个对象的应用没变,没有触发更新。

Zt448143356 avatar Jan 12 '22 10:01 Zt448143356

应用没变是什么意思 我应该怎么操作

jassonxian avatar Jan 23 '22 11:01 jassonxian

我也遇到了这个问题了,你解决了吗?怎么处理的?

LiuMingXin-coder avatar Nov 23 '22 03:11 LiuMingXin-coder

说错了应该是引用没变。 不建议使用react版本的butterfly了。现在没啥人维护react版本了。

Zt448143356 avatar Nov 23 '22 05:11 Zt448143356

说错了应该是引用没变。 不建议使用react版本的butterfly了。现在没啥人维护react版本了。

感谢好兄弟的建议,但是需求已经开发一大半了,来不及换了 o_O''。 另外,我的场景是两个data的nodes 中包含 相同节点id 但 节点的left&top 不同 我试着传入深拷贝之后的nodes,位置还是没有变更( 但是自定义的Node的视图有更新 )。是我使用方法不对吗?

const Foo = ( ) => {
  const [butterfly, setButterfly] = React.useState<any>({ nodes: [], edges: [] });
  useEffect(() => {
    console.log('btFRef', btFRef.current);
    // if (activeKey === '1') {
    //   btFRef?.current?.canvas?.redraw?.({ ...data });
    // } else if (activeKey === '2') {
    // btFRef?.current?.canvas?.redraw?.({ nodes: data.nodes });
    // }

    // data 和 data2 的部分节点ID一致,但是节点的left和top不一致
    setButterfly(activeKey === '1' ? cloneDeep(data) : cloneDeep(data2));
  }, [activeKey]);
  console.log('butterfly1', butterfly);
  return (
    <div className={styles['react-butter-container']}>
      <ReactButterfly ref={btFRef} {...butterfly} options={options} />
    </div>
  )
}

LiuMingXin-coder avatar Nov 23 '22 06:11 LiuMingXin-coder

我看了下代码确实存在这个问题。 我看下怎么帮你修复下吧。 建议尽快react切换到原生。因为没有那么多人力去支持react这个版本了。 原生版本提的问题,我们一定都会及时修复的。 优先级:dag>vue>react(基本不维护)

Zt448143356 avatar Nov 23 '22 08:11 Zt448143356

修复完毕了,你试试1.0.1版本。后续很可能就不会继续修复了。人力严重不足。 建议切换原生版本。原生版本的demo很全面

Zt448143356 avatar Nov 23 '22 08:11 Zt448143356

修复完毕了,你试试1.0.1版本。后续很可能就不会继续修复了。人力严重不足。 建议切换原生版本。原生版本的demo很全面

验证完毕,已修复。 感谢帮助,万分感谢 (〃'▽'〃)

LiuMingXin-coder avatar Nov 23 '22 08:11 LiuMingXin-coder