typescript Deno Fresh获取路径名

wztqucjr  于 2023-05-30  发布在  TypeScript
关注(0)|答案(1)|浏览(198)

我对deno和Fresh框架还很陌生(很难在谷歌上找到答案)。我想做一个导航链接,它的不同背景颜色匹配的路径名
这就是我所尝试的:

const NavLink = ({ href, children }: NavLinkProps) => {
  const isActive = location.pathname === href
  const bgClass = isActive ? tw`bg-gray-900` : tw`bg-transparent`

  return (
    <a
      href={href}
      className={tw`px-3 py-2 rounded-md text-sm font-medium text-white ${bgClass}`}
    >
      {children}
    </a>
  )
}

但是location是未定义的。

lqfhib0f

lqfhib0f1#

您可以从PageProps.url获取当前URL数据并将其传递给您的组件。
the docs
PageProps接口实际上包含一堆有用的属性,可用于定制呈现的输出。在匹配的url模式参数旁边,原始url和路由名称也可以在这里找到。

const NavLink = ({ href, children, location }: NavLinkProps) => {
  const isActive = location.pathname === href
  const bgClass = isActive ? tw`bg-gray-900` : tw`bg-transparent`

  return (
    <a
      href={href}
      className={tw`px-3 py-2 rounded-md text-sm font-medium text-white ${bgClass}`}
    >
      {children}
    </a>
  )
}

export default function Page(props: PageProps) {
  return (
    <div>You are on the page '{props.url.href}'.
      <NavLink href="/foo" children="Foo" location={props.url} />
    </div>
  )
}

相关问题