[英]I want to set the user name from a form in my react project with react context state management but it stays undefined
import React from "react";
import { useForm } from "react-hook-form";
import "./Home.css";
import { useStateValue } from "./StateProvider";
function Home() {
const { register, handleSubmit } = useForm();
const [{ user }, dispatch] = useStateValue();
const onSubmit = (data) => {
console.log(data);
console.log(user);
};
const submitUser = (data) => dispatch({ type: "SET_USER", user: data.naam });
return (
<form onSubmit={handleSubmit(onSubmit)}>
<div className="home">
<h1>Fill in your contact details.</h1>
<div className="home_userInput">
<div className="row">
<div className="col-25">
<label>name</label>
</div>
<div className="col-75">
<input name="naam" type="text" ref={register}></input>
</div>
</div>
<div className="row">
<button onClick={submitUser}>Submit</button>
</div>
</div>
</div>
</form>
);
}
export default Home;
I dont know how to get the user out from data and into userStateValue.我不知道如何将用户从数据中取出并放入 userStateValue。 If I substitute "user: data.naam" to "user: "Jimmy"" it works but I want to set the name from the data object.
如果我将“user:data.naam”替换为“user:“Jimmy””,它可以工作,但我想从数据对象中设置名称。
submitUser
is the callback of the onClick
, so data
in submitUser = (data) => dispatch({ ...
is the click event
and it won't hold the values you're looking for, submitUser
是回调onClick
,所以data
在submitUser = (data) => dispatch({ ...
是click event
,它不会阻挡你正在寻找的价值,
Call it inside the onSubmit
instead :在
onSubmit
调用它:
const onSubmit = (data) => {
console.log(data);
console.log(user);
submitUser(data);
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.