我几周前开始研究NextJ,但我很难使用map从列表中提取值,其中一个项目具有特定键的多个值.

我正在try 创建一个RCM菜单.如果角色只有一个价值观,那么一切都会正常运行.然而,当我try 添加多个值时,我无法使其工作.

我的数组:

export const links = [
  {
    name: 'TIMETRACKER',
    href: '/dashboard/timetracker',
    icon: ClockIcon,
    role: 'user',
  },
 {
    name: 'MANAGE',
    href: '#',
    icon: HomeIcon,
    role: ['manager', 'admin'],
},
 {
    name: 'SETTINGS',
    href: '#',
    icon: HomeIcon,
    role: ['user', 'manager', 'admin'],
},
]

第一个可以作为一种魅力,但其他的就是不起作用.

我的验证函数位于 map 内部,并try 验证该 map 的每一项:

      {links?.map((link, indexItem) => {
        const LinkIcon = link.icon;
        return (
          <div key={indexItem} className="mt-2 md:mt-0">
            {!link.subitems && (link.role === userrole || link.role === '') ? (
              <ul>
                <li className="mr-2 inline-block md:mr-0 md:list-item">
                  <Link
                    key={link.name}
                    href={link.href}
                    className={clsx(
                      'flex h-[48px] grow items-center justify-center gap-2 rounded-md bg-gray-50 p-3 text-sm font-medium hover:bg-sky-100 hover:text-blue-600 md:flex-none md:justify-start md:p-2 md:px-3',
                      { 'bg-sky-100 text-black': pathname === link.href },
                    )}
                  >
                    <LinkIcon className="w-6" />
                    <p className="hidden md:block">{link.name}</p>
                  </Link>
                </li>
              </ul>
            ) : null }
          </div>
        );
      })}

有线索吗?

我是否应该创建另一个 map 来验证权限?

谢谢.

推荐答案

您需要修改您的link.role相等判断,以重写第二个和第三个字节的列表.

例如代替

            {!link.subitems && (link.role === userrole || link.role === '') ? (

将其更改为

            {!link.subitems && (Array.isArray(link.role)
    ? link.role.includes(userrole)
    : link.role === userrole || link.role === '') ? (

如果此答案有帮助,请将其标记为"已接受"

React-native相关问答推荐

错误:HostBody::get for prop NativeUnimoduleProxy中出现异常- Android虚拟设备(AVD)使用Expo测试React Native App时崩溃

如何在renderItem中显示每个项目的索引号,保持分页的前一个下一个按钮

复制__自持props

react 本机中的TextInput对齐中的长文本

Touchabble 不透明度不工作-react 本机

将值从一个 js 文件传递​​到 react native 中的另一个 js 文件:react native

如何在 react native 中以 redux 形式设置隐藏字段?

React Native Ios错误 - ENOENT:no such file or directory, uv_cwd (null)

错误:看起来您在另一个中嵌套了一个NavigationContainer

如何为 Picker 提供默认的Please select...选项?

错误:无法解析模块`buffer`

在本react-native中具有异步和等待的箭头函数

当组件在react-native 中重新呈现时,动态不透明度不会改变

更改按钮 colored颜色 onPress(切换功能)

React Native 元素,未生成 index.ios.js 或 index.android.js

如何用 Realm 元素文件组织 React Native?

在不使用 3rd 方库的情况下,在react-native中显示主屏幕之前显示启动画面

zoom 到指定的标记 react-native-maps

React Navigation 切换背景 colored颜色 和样式 StackNavigator

React-native iOS 不显示图像(pod 问题)