gpt4 book ai didi

javascript - Ant 设计 : Wrapping a menu item into a custom component

转载 作者:行者123 更新时间:2023-11-29 17:41:26 25 4
gpt4 key购买 nike

我正在玩 ant-design 并尝试构建一个简单的菜单,一切都按预期工作:

<Menu mode="inline">
<Menu.Item key="/">
<Icon type="dashboard" theme="outlined" />
Dashboard
</Menu.Item>
<Menu.Item key="/transactions">
<Icon type="bars" theme="outlined" />
Transactions
</Menu.Item>
<Menu.Item key="/groups">
<Icon type="team" theme="outlined" />
Groups
</Menu.Item>
<Menu.Item key="/account">
<Icon type="idcard" theme="outlined" />
Account
</Menu.Item>
</Menu>

( https://codesandbox.io/s/wqn37ojmv7 )

现在,我想通过制作一个单独包装的 MenuItem 组件来稍微简化这段代码:

const MenuItem = ({route, icon, children}) => (
<Menu.Item key={route}>
<Icon type={icon} theme="outlined" />
{children}
</Menu.Item>
);

// ...
<Menu mode="inline">
<MenuItem route="/" icon="dashboard">Dashboard</MenuItem>
<MenuItem route="/transactions" icon="bars">Transactions</MenuItem>
<MenuItem route="/groups" icon="team">Groups</MenuItem>
<MenuItem route="/account" icon="idcard">Account</MenuItem>
</Menu>

然而,替换我 Shiny 的新组件几乎会破坏一切——不知何故,我似乎失去了一些神奇地传递给 Menu.Item 的 Prop (比如 clsPrefixonItemHover 回调):https://codesandbox.io/s/ojyqy0oqq6

这是怎么回事?这些 Prop 是如何在幕后传递的,我如何才能正确包装 Menu.Item 而不会失去所有这些魔力?

最佳答案

你可以传递其余传递的 props

const MenuItem = ({route, icon, children, ...props}) => ( 
<Menu.Item key={route} {...props}>
<Icon type={icon} theme="outlined" />
{children}
</Menu.Item> );

关于javascript - Ant 设计 : Wrapping a menu item into a custom component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52822484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com