@@ -103,45 +103,50 @@ export default function MyContextMenu () {
103
103
}
104
104
```
105
105
106
- ## 多级菜单 & 异步动态加载
106
+ ## 多级菜单 & 异步无限加载
107
+
108
+ 用来测试极端情况,始终报纸多层情况下能渲染在可视化屏幕内。
107
109
108
110
``` tsx
109
111
import { ContextMenu } from ' @vis/components' ;
110
- import React from ' react'
112
+ import React from ' react' ;
111
113
import { ReloadOutlined } from ' @ant-design/icons' ;
112
114
const { useContextMenu } = ContextMenu ;
113
-
114
- export default function MyContextMenu () {
115
- const { Trigger, ContextMenu } = useContextMenu ()
116
-
117
-
118
- return <div >
119
- <Trigger data = { {id: ' 123' }} >右键我</Trigger >
120
- <ContextMenu menus = { [{ label: ' 操作1' , value: ' 1' },
121
- {
122
- label: ' 动态异步菜单' ,
123
- value: ' key2' ,
124
- icon: <ReloadOutlined />,
125
- children : () => {
115
+ import { Spin } from ' antd' ;
116
+ const loadChildren = (item ) => {
126
117
return new Promise ((resolve , reject ) => {
127
118
setTimeout (() => {
128
119
resolve ([
129
- { label: ' 操作2-1 ' ,
130
- value: ' key2-1 '
120
+ { label: ` 操作${ item . value }-1 ` ,
121
+ value: ` key${ item . value }-1 `
131
122
},
132
- { label: ' 操作2-2' ,
133
- value: ' key2-2'
123
+ { label: ` 操作${item .value }-2 ` ,
124
+ value: ` key${item .value }-2 ` ,
125
+ children: loadChildren
134
126
},
135
- { label: ' 操作2-3 ' ,
136
- value: ' key2-3 '
127
+ { label: ` 操作${ item . value }-3 ` ,
128
+ value: ` key${ item . value }-3 `
137
129
},
138
- { label: ' 操作2-4 ' ,
139
- value: ' key2-4 '
130
+ { label: ` 操作${ item . value }-4 ` ,
131
+ value: ` key${ item . value }-4 `
140
132
}
141
133
])
142
134
}, 1000 )
143
135
})
144
136
}
137
+ export default function MyContextMenu () {
138
+ const { Trigger, ContextMenu } = useContextMenu ()
139
+
140
+ return <div >
141
+ <Trigger data = { {id: ' 123' }} style = { {border: ' solid 1px red' }} ><div >右键我</div ></Trigger >
142
+ <ContextMenu
143
+ loadding = { <Spin size = { ' small' } />}
144
+ menus = { [{ label: ' 操作1' , value: ' 1' },
145
+ {
146
+ label: ' 动态异步菜单' ,
147
+ value: ' key2' ,
148
+ icon: <ReloadOutlined />,
149
+ children: loadChildren
145
150
},
146
151
]} onClick = { (e , data , menu ) => {
147
152
alert (` data.id: ${data .id } menu.value: ${menu .value } ` )
0 commit comments