@@ -103,45 +103,50 @@ export default function MyContextMenu () {
103103}
104104```
105105
106- ## 多级菜单 & 异步动态加载
106+ ## 多级菜单 & 异步无限加载
107+
108+ 用来测试极端情况,始终报纸多层情况下能渲染在可视化屏幕内。
107109
108110``` tsx
109111import { ContextMenu } from ' @vis/components' ;
110- import React from ' react'
112+ import React from ' react' ;
111113import { ReloadOutlined } from ' @ant-design/icons' ;
112114const { 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 ) => {
126117 return new Promise ((resolve , reject ) => {
127118 setTimeout (() => {
128119 resolve ([
129- { label: ' 操作2-1 ' ,
130- value: ' key2-1 '
120+ { label: ` 操作${ item . value }-1 ` ,
121+ value: ` key${ item . value }-1 `
131122 },
132- { label: ' 操作2-2' ,
133- value: ' key2-2'
123+ { label: ` 操作${item .value }-2 ` ,
124+ value: ` key${item .value }-2 ` ,
125+ children: loadChildren
134126 },
135- { label: ' 操作2-3 ' ,
136- value: ' key2-3 '
127+ { label: ` 操作${ item . value }-3 ` ,
128+ value: ` key${ item . value }-3 `
137129 },
138- { label: ' 操作2-4 ' ,
139- value: ' key2-4 '
130+ { label: ` 操作${ item . value }-4 ` ,
131+ value: ` key${ item . value }-4 `
140132 }
141133 ])
142134 }, 1000 )
143135 })
144136 }
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
145150},
146151 ]} onClick = { (e , data , menu ) => {
147152 alert (` data.id: ${data .id } menu.value: ${menu .value } ` )
0 commit comments