butterfly
butterfly copied to clipboard
ReactButterfly setData node top 位置未更新
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.
因为你的data这个对象的应用没变,没有触发更新。
应用没变是什么意思 我应该怎么操作
我也遇到了这个问题了,你解决了吗?怎么处理的?
说错了应该是引用没变。 不建议使用react版本的butterfly了。现在没啥人维护react版本了。
说错了应该是引用没变。 不建议使用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>
)
}
我看了下代码确实存在这个问题。 我看下怎么帮你修复下吧。 建议尽快react切换到原生。因为没有那么多人力去支持react这个版本了。 原生版本提的问题,我们一定都会及时修复的。 优先级:dag>vue>react(基本不维护)
修复完毕了,你试试1.0.1版本。后续很可能就不会继续修复了。人力严重不足。 建议切换原生版本。原生版本的demo很全面
修复完毕了,你试试1.0.1版本。后续很可能就不会继续修复了。人力严重不足。 建议切换原生版本。原生版本的demo很全面
验证完毕,已修复。 感谢帮助,万分感谢 (〃'▽'〃)