我正在 like-counter
NextJS
应用程序中构建一个 ReactJS
,它存储一个持久的可递增 count
值。 max-count
/ clicks
的 likes
将设置为 100
。 button
不会增加 count
超过此值。 like-counter
值存储在 FaunaDB 中。
我可以在前端呈现存储在 db
中的值,但我无法让 onClick
处理程序更新存储在 { {1}}。
这是(评论)db
到目前为止:
此处,code
是通过 State
钩子声明的。
useState
updateLikes 函数
const [likes,setLikes] = useState([]);
async function updateLikes() {
await fetch("/api/newLikes",requestOptionsLikes)
.then(() => getLikes())
.catch((e) => console.log(e))
}
方法被实例化:
PUT
一个 useEffect 钩子:
const requestOptionsLikes = {
method: "PUT",headers: { "Content-Type": "application/json" },body: JSON.stringify({ likes })
}
点击功能:
useEffect(() => {
getLikes();
},[]);
呈现可点击的 const handleSubmitLikes = (e) => {
e.preventDefault();
updateLikes();
}
按钮并显示来自 JSX
的值的 LIKE
。
db
代码正确地从数据库中获取了 <div>
<div onClick={handleSubmitLikes}>LIKE</div>
</div>
{
likes.map((d) => (
<div>
<div>{d.data.like}</div>
</div>
))}
</div>
,所以我认为没有必要显示 likes
getLikes
。但是,API
newLikes
返回 500 内部服务器错误,因此我将其显示如下:
API
基本上,我无法通过 PUT 方法更新数据库。