Javascript 尝试更改输入onChange时遇到状态错误
I当我从父组件向下传递状态时,Javascript 尝试更改输入onChange时遇到状态错误,javascript,reactjs,next.js,use-state,Javascript,Reactjs,Next.js,Use State,I当我从父组件向下传递状态时,setState不断抛出一个错误,指出setEmail不是事件更改的函数。我想知道是否有一个简单的解决办法 当我尝试在电子邮件输入中键入字符串时,会抛出以下错误: 错误:未处理的运行时错误 TypeError:setEmail不是一个函数 父组件:(Next.js应用程序) import React,{useState,useContext,useffect}来自“React”; 导入“./styles/globals.css”; 导入“bootstrap/dist
setState
不断抛出一个错误,指出setEmail
不是事件更改的函数。我想知道是否有一个简单的解决办法
当我尝试在电子邮件输入中键入字符串时,会抛出以下错误:
错误:未处理的运行时错误
TypeError:setEmail不是一个函数
父组件:(Next.js应用程序)
import React,{useState,useContext,useffect}来自“React”;
导入“./styles/globals.css”;
导入“bootstrap/dist/css/bootstrap.min.css”;
函数MyApp({Component,pageProps}){
const[tester,setter]=使用状态(false);
const[email,setEmail]=useState(“”);
const[password,setPassword]=useState(“”);
返回(
);
}
导出默认MyApp;
子组件:
导出默认功能注册(道具){
const router=useRouter();
const{email,setEmail,password,setPassword,setHasAccount}=props;
//用于处理在单击时提交新用户的函数
const onSubmit=(事件)=>{
event.preventDefault();
路由器推送(“/问题”);
};
返回(
setEmail(e.target.value)}
/>
setPassword(event.target.value)}
/>
报名
{
event.preventDefault();
setHasAccount(真);
}}
>
有帐户吗?在这里登录
);
}
您需要检查此组件的父组件是否正在传入一个名为setEmail
的道具,以及它是否是一个函数。看起来您可能忘记了将其作为道具传递。我将您的代码移植到一个沙箱中,它工作正常,我相信您在某种程度上传递道具是错误的。这是沙盒的副本,您可以看到它正在运行
你能给我看一下Signupsorry的父组件吗?关于这一点,我添加了父组件信息,它是一个next.js应用程序,所以它是_app.tsx