NextJs + Supplier“使用auth userid提交”

qzlgjiam  于 2024-01-07  发布在  其他
关注(0)|答案(1)|浏览(133)

我试图通过插入user.id来发布文章到“帖子表(ID列)”。尝试了很多次,但我不能插入user.id!!
下面是我的代码。

"use client";
import { useState } from "react";
import supabase from "@/utils/supabase/client";

export function Edit() {
  const [body, setBody] = useState("");

  const handleSubmit = async (e: { preventDefault: () => void }) => {
    e.preventDefault();

    const { data, error } = await supabase.from("posts").insert([{ body }]);
    if (data) {
      setBody("");
      window.location.reload();
    }
    if (error) {
      console.error(error);
    }
  };

  return (
    <div>
      <form onSubmit={handleSubmit} className="flex flex-col text-black">
        <label htmlFor="postsBody" className="text-white">
          Note Title:
        </label>
        <input
          id="postsBody"
          className="mt-5"
          type="text"
          value={body}
          onChange={(e) => setBody(e.target.value)}
          required
        />
        <button
          type="submit"
          className="bg-white p-3 rounded mt-5 text-black font-bold"
        >
          Add Contents
        </button>
      </form>
    </div>
  );
}

字符串
请教我如何修复这个代码来达到我的目的!!

xkrw2x1b

xkrw2x1b1#

将user.id包含在您的声明中。
你可以从这里开始:

export function Edit() {
  const [body, setBody] = useState("");
  const [userId, setUserId] = useState(null);

  useEffect(() => {
    setUserId(supabase.auth.session()?.user?.id);
  }, [supabase.auth.session()]);

字符串

相关问题