"use client";
import { useState , useEffect } from "react";
import React from 'react'
function page() {
const [username, setUsername] = useState("");
const [email, setEmail] = useState("");
const [disable,setDisable] = useState(true);
useEffect(()=>{
if(username.length>0 && email.length>0){
setDisable(false);
}else{
setDisable(true)
}
},[username,email])
const handleSubmit = () =>{
}
return (
<>
<label htmlFor="name" >Name</label>
<hr />
<input type="text" name="name" value = {username} className="text-black"
onChange={(e)=>{
setUsername(e.target.value);
}}
/> <hr />
<label htmlFor="email" >Email</label> <hr />
<input type="text" name="email" value = {email} className="text-black"
onChange={(e)=>{
setEmail( e.target.value)
}}
/> <hr />
<button onClick={handleSubmit} disabled={disable}>Submit</button>
</>
)
}
export default page
状态没有得到更新在最新的下一个版本,有人能告诉我我错过了什么??
这是app/page.tsx,因为它使用的是useState,所以我这样更新了它,请纠正我。
1条答案
按热度按时间ljsrvy3e1#
在你的代码中有几件事需要改变:
Page
为单位,因此应该是page
,而不是page
useEffect
,因为username
和email
是状态值,你可以创建一个新的const disableSubmit = !username.length || !email.length;
。disableSubmit
值将在username
或email
值更改时更改检查这个codesandbox示例