这是我的loginButton
,它是另一个文件中Button
组件的包装.
'use client';
import { useRouter } from 'next/navigation';
import { useTransition } from 'react';
interface LoginButtonProps {
children: React.ReactNode;
mode?: 'modal' | 'redirect';
asChild?: boolean;
}
export const LoginButton = ({
children,
mode = 'redirect',
asChild,
}: LoginButtonProps) => {
const router = useRouter();
const [isPending, startTransition] = useTransition();
const onclickHandler = () => {
router.push('/auth/login');
console.log('clicked');
};
return (
<span className="cursor-pointer" onClick={onclickHandler}>
{children}
</span>
);
};
而Button
个组成部分是:
import { Button } from '@/components/ui/button';
import { LoginButton } from '@/components/auth/login-button';
export default function Home() {
return (
<main>
<LoginButton>
<Button variant="secondary" size="lg" className="mt-8">
Sign in
</Button>
</LoginButton>
</div>
</main>
);
}
我想传递isPending
状态作为prop和使用在Home
组件.我想保持按钮禁用,而isPending
是真的,以及更改其文本.如何做到这一点?
请帮助我用你宝贵的时间和知识.先谢谢你.