Supabase邮箱密码注册报错:无法解析Signup参数的解决办法
解决Supabase邮箱密码注册的参数解析错误
问题原因
错误提示明确说明:无法将对象解析为SignupParams.email字段所需的字符串类型。你的代码中,signUp方法的email和password参数错误地传成了对象,而非字符串值。
修正后的注册函数
把email: { email }改为直接传字符串变量email,password: { password }同理修改:
const signInWithEmail = async () => { const { data, error } = await supabase.auth.signUp({ email: email, password: password, options: { data: { first_name: "John", age: 27, }, }, }); error ? console.log(error) : console.log(data); };
也可以用ES6对象简写语法,代码更简洁:
const signInWithEmail = async () => { const { data, error } = await supabase.auth.signUp({ email, password, options: { data: { first_name: "John", age: 27, }, }, }); error ? console.log(error) : console.log(data); };
额外小提示
表单按钮的disabled属性使用了loading变量,但你的状态变量是isLoading,建议统一变量名避免逻辑错误:
<button onClick={(e) => { e.preventDefault(); signInWithEmail(); }} disabled={isLoading} className="" > {isLoading && ( <Icons.spinner className="mr-2 h-4 w-4 animate-spin" /> )} Sign In with Email </button>
内容的提问来源于stack exchange,提问作者CTRL-In-Knowledge
相关产品推荐
相关产品推荐

