-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
渲染顺序错误,先渲染线,再渲染节点 #3683
Comments
这个有具体的例子复现一下吗? |
@NewByVector 我弄个demo出来 |
@NewByVector 经过测试,内置节点没有问题,自定义节点就会出现“先渲染线,再渲染节点 ”的问题 |
看了下,你的节点时 react 节点,其实节点时先于连线渲染的,不过 react 组件挂载是需要时间的,所以出现上面情况,连线不可能去等待所有 react 组件完成挂载。 |
@NewByVector 这种情况会让用户觉得是bug。
/**
* 这里有三步:
* 1. 这里需要加入loading,且需要在画布外部加入。
* 2. 渲染过程中,还需要让画布不可见并且不占用任何空间。
* 3. 渲染完成后,让画布显示。
*
* 取值逻辑:
* 让元素不可见并且不保留元素在页面中所占的空间(有bug)
* display: visible ? 'block' : 'none',
*
* 让元素不可见并且保留元素在页面中所占的空间
* visibility: visible ? 'visible' : 'hidden',
* opacity: visible ? 1 : 0,
*
* 当然还有使用position属性将元素定位到屏幕之外。这种方法可以让元素不可见并且不占用任何空间。
*/
const [visible, setVisible] = React.useState(false);
const style = {
// 让元素不可见并且不占用任何空间
position: visible ? 'relative' : 'absolute',
left: visible ? 'auto' : '-9999px',
};
业务里,我尝试的是第一种围魏救赵的方式,但是解决不了本质问题,第二种应该是可以从根本上解决问题。 |
第二种现在是支持的,在注册 react-shape 的时候增加 register({
primer: 'rect',
shape: 'algo-node-1',
width: 144,
height: 28,
effect: ['data'],
component: NodeComponent,
}) |
This thread has been automatically locked because it has not had recent activity. Please open a new issue for related bugs and link to relevant comments in this thread. |
问题描述
渲染大量节点,渲染顺序错误,先渲染线,再渲染节点
重现链接
暂无
重现步骤
暂无
预期行为
三个方案:
平台
屏幕截图或视频(可选)
补充说明(可选)
No response
The text was updated successfully, but these errors were encountered: