首先我们先看一下antd导航菜单中的数据是如何使用的。
//来源antd
function getItem(label, key, icon, children, type) {
return {
key,
icon,
children,
label,
type,
};
}
const items = [
getItem('Navigation One', 'sub1', <MailOutlined />, [
getItem('Option 1', '1'),
getItem('Option 2', '2'),
getItem('Option 3', '3'),
getItem('Option 4', '4'),
]),
getItem('Navigation Two', 'sub2', <AppstoreOutlined />, [
getItem('Option 5', '5'),
getItem('Option 6', '6'),
getItem('Submenu', 'sub3', null, [getItem('Option 7', '7'), getItem('Option 8', '8')]),
]),
getItem('Navigation Three', 'sub4', <SettingOutlined />, [
getItem('Option 9', '9'),
getItem('Option 10', '10'),
getItem('Option 11', '11'),
getItem('Option 12', '12'),
]),
];
使用的数据
items={items}
数据items调用了getItem这个函数,发返回的其实也是个对象。这个对象里需要有key, icon, children, label, type这几个参数中的几个。items里相当于封装了一下这些数据。实际上也相当于下面的数据。{[{a,b,c,[{a1,b1,c1},{}...]},{},{}...]}
items={[
{
key: "1",
icon: <Useroutlined />,
label: "nav 1",
children: [
{
key: "1",
icon: <Useroutlined />,
label: "subnav 2",
},
......
],
},
.......
]},
可以用forEach或者递归方法遍历修改需要的数据。