import React, { useState, useMemo, useCallback } from 'react'; import { IconUser, IconStar, IconUserGroup, IconEdit, IconApps, IconSetting } from '@douyinfe/semi-icons'; import { Nav, Button } from '../../../index'; export default function Demo() { const [selectedKeys, setSelectedKeys] = useState(['人员管理']); const navItems = useMemo( () => [ { itemKey: 'user', text: '用户管理', icon: , link: '#' }, { itemKey: 'union', text: '公会中心', icon: }, { itemKey: 'union-management', link: '#', text: '公会管理', icon: , items: ['公告设置', '公会查询', '信息录入'], }, { itemKey: 'approve-management', text: '审批管理', icon: , items: [ '入驻审核', { itemKey: 'operation-management', text: '运营管理', items: ['人员管理', '人员变更'], }, ], }, { text: '任务平台', icon: , itemKey: 'job', items: ['任务管理', '用户任务查询'], }, ], [] ); const navItemKeys = useMemo( () => navItems.reduce((prev, item) => { const que = [item]; while (que.length) { const cur = que.pop(); if (cur) { if (typeof cur === 'object') { if (Array.isArray(cur.items) && cur.items.length) { que.push(...cur.items); } else if (cur.itemKey) { prev.push(cur.itemKey); } } else { prev.push(cur); } } } return prev; }, []), [navItems] ); const randomSelect = useCallback(() => { const randomIndex = Math.floor(Math.random() * navItemKeys.length); setSelectedKeys([navItemKeys[randomIndex]]); }, [navItemKeys]); return (
); }