我以前使用过'next/router'
的路由器,但我阅读了版本13的文档,它说我需要把它改成'next/navigation'
。但是如何将用户数据传递给路由器推送。这是我的代码片段
'use client';
import { FormEvent, useEffect, useState } from "react";
import { createBrowserSupabaseClient } from '@supabase/auth-helpers-nextjs';
import { useRouter } from 'next/navigation';
export default function formLogin() {
const [user, setUser] =
useState<{email: string; password: string}>({
email: '',
password: ''
});
const router = useRouter();
useEffect(() => {
setUser({
email: user.email,
password: user.password
});
}, []);
const supabase = createBrowserSupabaseClient();
const login = async (e: FormEvent) => {
e.preventDefault();
const { data, error } = await supabase.auth.signInWithPassword({
email: user.email,
password: user.password,
})
router.push('/dashboard');
}
}
1条答案
按热度按时间5gfr0r5j1#
您将不得不通过查询参数/ URL参数传递您的数据,如下所示
然后在你的页面.tsx中,通常默认是一个服务器组件,页面组件有两个props,即
params
和searchParams
。更多信息及其类型定义here举个例子,我在一个示例应用程序中输入了一个搜索栏,用户可以在其中输入国家名称以从国家REST API获取国家信息。
search-bar.tsx
我的
page.tsx
文件PS:你可能要想办法通过queryParams以安全的方式发送密码。我不知道你会怎么做。