当前位置: 首页 > 知识库问答 >
问题:

在物料界面中动态增加、删除、更改、停用、启用菜单项,并做出反应

喻增
2023-03-14

我到处找这个答案都没有用。例如,如果我在navbar的右上方有一个菜单,其中有两个菜单项要启动(1.login.2.Register),当用户单击login或Register并完成表单时,菜单项会更改为(1.logout2.My Account)。还可能有其他菜单项将根据登录状态和角色启用/禁用。

我找不到任何代码来给出如何实现这一点的示例,甚至不知道如何动态禁用菜单项。我对material-ui是个新手,但已经编码了几十年。我可以使用JavaScript来完成这个操作,但我想要我们的材质UI。

有没有人可以提供一个如何使用material-ui和react来实现这一点的例子

共有1个答案

秦城
2023-03-14

Material UI为您提供组件,并为您处理大部分UI状态(打开/关闭等),根据我的理解,您所描述的是您必须自己完成的事情。

我的方法是使用某种组件,通过如下对象生成链接:

const links = {
  loggedIn: [{text: "Logout", path: "/logout"}, {text: "myAccount", path: "/dashboard"}],
  loggedOut: [{text: "Login", path: "/login"}, {text: "Register", path: "/register"}] 
}

然后,我将有一个变量来保存在这种情况下我感兴趣的值:

const linksToShow = state.user ? links.loggedIn : links.loggedOut

然后在返回/呈现(我不确定组件本身,所以我将在这里发布一些通用代码):

<Menu>
  {state.user ? linksToShow.map(link => <Link to={link.path}>{link.text}</Link>)}
</Menu>
 类似资料:
  • 问题内容: 我正在尝试从方法外部更改菜单项的标题。 我已经做了以下工作; 但是,我希望能够在此方法之外修改特定菜单项的标题。 问题答案: 正如JxDarkAngel所建议的那样,可以从你的中的任何地方调用它, 然后覆盖:

  • 我无法使与一起工作。 我希望能够右键单击表中的任何位置(行,td)并显示上下文菜单。这部分工作。 但我也希望能够连续右键单击表中的其他位置,并始终显示上下文菜单的光标位置。这不起作用。当前,您必须单击“离开”关闭菜单,然后再次右键单击以重新打开菜单。 在Material UI演示中, https://material-ui.com/components/menus/#context-menu操作正

  • 我已经实现了一个材料导航抽屉,我想在选择导航抽屉中的一个菜单项而不是配置文件活动的片段时启动一个活动。我不想在ProfileActivity中显示导航抽屉。我只想在从导航抽屉中选择菜单项时启动ProfileActivity。其他菜单项打开了我可以接受的片段。如果我在switch case语句中调用Intent,应用程序就会崩溃,因为我正在替换片段。 我目前使用的方法是 我打开FragmentPro

  • 问题内容: 向下滚动页面时,活动菜单项将更改。怎么做? 问题答案: 通过绑定到容器的滚动事件(通常是窗口)来完成。 快速示例:

  • 我有一个材质ui自动完成元素 当我单击按钮时,我希望这个元素得到焦点。 我尝试使用这里描述的引用,如何以编程方式对焦点输入作出反应 它适用于其他元素,但不适用于自动完成 请帮忙

  • 本文向大家介绍jquery 动态增加删除行的简单实例(推荐),包括了jquery 动态增加删除行的简单实例(推荐)的使用技巧和注意事项,需要的朋友参考一下 最近写程序,碰巧有动态增加删除行,下面就记录一下 html就不写了,也没有什么,直接上核心了 新增行 好,下面我们看下addTr方法~~这个是在网上找到的,还是蛮好用的 删除行,这个就比较简单了 动态添加删除行,就这么几行代码,方便大家使用 p