html - 如何在reactjs中使用相同的导航栏来完成两个导航栏的工作?

标签 html reactjs

我必须创建一个管理门户,其中有两个主页,因此我需要两个具有不同选项和不同链接的导航栏。

但我想做的是,如果我们登录到另一个页面,则使用相同的导航栏与其他人一样工作。

function OrgAdminNavbar(): JSX.Element {
  return (
    <>
      <div className={styles.header_block}>
        <img src={Logo} className={styles.logo} />
        <strong className={styles.heading}>TalawaAdmin</strong>
      </div>
      <div className={styles.left_block}>
        <li>
          <a href="/orghome">Home</a>
        </li>
        <li>
          <a href="/orgmember">Member</a>
        </li>
        <li>
          <a href="/">LogOut</a>
        </li>
      </div>
    </>
  );
}

export default OrgAdminNavbar;

这是我的第一个导航栏

function SuperAdminNavbar(): JSX.Element {
  return (
    <>
      <div className={styles.header_block}>
        <img src={Logo} className={styles.logo} />
        <strong className={styles.heading}>TalawaAdmin</strong>
      </div>
      <div className={styles.left_block}>
        <li>
          <a href="/">Home</a>
        </li>
        <li>
          <a href="/supermember">People</a>
        </li>
        <li>
          <a href="/superorg">Organization</a>
        </li>
        <li>
          <a href="/">LogOut</a>
        </li>
      </div>
    </>
  );
}

export default SuperAdminNavbar;

这是我的第二个导航栏,基本上我想合并它。

最佳答案

您可以将名称和 URL 数组传递给通用导航栏组件:

interface NavbarProps {
  targets: { url: string, name: string }[]
}

function Navbar({ targets }: NavbarProps): JSX.Element {
  return (
    <>
      <div className={styles.header_block}>
        <img src={Logo} className={styles.logo} />
        <strong className={styles.heading}>TalawaAdmin</strong>
      </div>
      <div className={styles.left_block}>
        {targets.map(({ name, url}) => <li key={name}><a href={url}>{name}</a></li>)}
      </div>
    </>
  );
}

像这样使用它:

<Navbar
  targets={[
    { name: 'Home', url: '/'},
    { name: 'People', url: '/supermember'},
    { name: 'Organisation', url: '/superorg'}
  ]}
/>

关于html - 如何在reactjs中使用相同的导航栏来完成两个导航栏的工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68086906/

相关文章:

html - 当获得 col-xs-12 模式时,我需要它们位于中心

reactjs - React(Typescript) onchange 事件类型

javascript - 如何在侧边栏中制作可折叠列表

javascript - React redux 应用文件夹结构

javascript - React TypeError : _this2. props.variations.find 不是函数

javascript - 使用来自服务器的 url 与 root 不匹配的路由器进行 react

javascript - 阻止 HTML 元素被修改

javascript - Polymer 1.0 dom-repeat 显示索引从1开始

javascript - 正则表达式更改 html 元素类与 javascript 不工作

html - CSS 选择器中标签、id、类和属性的顺序重要吗?