问题描述
当使用antd中的
原因分析
先来看antd官方的例程:
const handleMenuClick = (e) => {
message.info('Click on menu item.');
console.log('click', e);
};
const items = [
{
label: '1st menu item',
key: '1',
icon: <UserOutlined />,
},
{
label: '2nd menu item',
key: '2',
icon: <UserOutlined />,
},
{
label: '3rd menu item',
key: '3',
icon: <UserOutlined />,
danger: true,
},
{
label: '4rd menu item',
key: '4',
icon: <UserOutlined />,
danger: true,
disabled: true,
},
];
const menuProps = {
items,
onClick: handleMenuClick,
};
我参照官方的写法:
const handleMenuClick = (e) => {
message.info('Click on menu item.');
console.log('click', e);
};
const levelItems = [
{
label: '困难',
key: '1',
},
{
label: '普通',
key: '2',
},
{
label: '简单',
key: '3',
}
]
const levelMenuProps = {
levelItems,
onClick: handleMenuClick,
};
//中间代码省略
return (
<>
<Dropdown menu={levelMenuProps}>
<Button>
<Space>
难度
<DownOutlined/>
</Space>
</Button>
</Dropdown>
</>
);
官方程序里:
const menuProps = {
items,
onClick: handleMenuClick,
};
这里采用了一种简化的写法,是指属性
正确的做法,应该是将items属性名写全:
const levelMenuProps = {
items:levelItems,
onClick: handleMenuClick,
};
就ok啦!