我試圖弄清楚如何定義一個主頁鏈接,如果有經過身份驗證的用戶,則呈現一個頁面,如果沒有,則呈現另一個頁面。
我的功能是檢查是否有經過身份驗證的用戶。到目前為止,它適用于我的應用程式。
當我嘗試:
<HomeLink
href={!me? "/" | "/dash"}
>
<Logo />
</HomeLink>
我收到一條錯誤訊息:
型別 'boolean' 不可分配給型別 'string'.ts(2322) Nav.tsx(147, 3):預期型別來自屬性 'href',它在型別 'IntrinsicAttributes & HomeLinkProps' 上宣告
我的 HomeLinkProps 定義為:
interface HomeLinkProps extends LinkProps {
href: string
}
function HomeLink({ href, ...props }: HomeLinkProps) {
const { asPath } = useRouter()
const isActive = asPath === href
return (
<NextLink passHref href={href}>
<Link
px={4}
py={2}
textDecor="none !important"
{...props}
>
{props.children}
</Link>
</NextLink>
我認為它被正確地定義為一個字串 - href 條件中的兩個替代項都是字串 - 但我不知道如何在 Logo 欄位中表達它。
在將主頁鏈接直接指向一個頁面或另一個頁面之前,如何添加一個條件來檢查經過身份驗證的用戶?
uj5u.com熱心網友回復:
請參閱條件(三元)運算子。
:如果條件為真,則應執行的運算式后應有一個冒號 ( )。(不是|)
href={!me ? "/" : "/dash"}或者href={me ? "/dash" : "/"}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/530695.html
標籤:反应下一个.js
