Javascript React组件未从reducer获取更新状态

Javascript React组件未从reducer获取更新状态,javascript,reactjs,redux,react-hooks,react-component,Javascript,Reactjs,Redux,React Hooks,React Component,我是第一次尝试redux钩子的新手,在这个问题上被困了一天。最后,我想加入论坛。我在这里附上代码的截图 当我提交表单时,成功场景运行得非常好。它将请求发送到后端,用户将在后端正确保存到DB!问题在于错误案例,即用户提交表单时已发送电子邮件。在这种情况下,(auth.error)的if块没有调用,因为状态没有从reducer获取错误对象 const注册=()=>{ 调试('在渲染中!'); const auth=useSelector((state)=>state,shallowEqual); c

我是第一次尝试redux钩子的新手,在这个问题上被困了一天。最后,我想加入论坛。我在这里附上代码的截图

当我提交表单时,成功场景运行得非常好。它将请求发送到后端,用户将在后端正确保存到DB!问题在于错误案例,即用户提交表单时已发送电子邮件。在这种情况下,(auth.error)的if块没有调用,因为状态没有从reducer获取错误对象

const注册=()=>{
调试('在渲染中!');
const auth=useSelector((state)=>state,shallowEqual);
const dispatch=usedpatch();
const[values,setValues]=useState({
名称:“Rahul”,
姓氏:'Kodu',
电子邮件:“rahul。kodu@entr.co',
密码:“12345”,
成功:错,
});
const{name,email,password,success,lastname}=value;
常量handleChange=(事件)=>{
设定值({
价值观
[event.target.name]:event.target.value,
});
};
常量handleSubmit=(e)=>{
e、 预防默认值();
//在这里打电话
调试(“单击提交按钮”);
const user={name,email,password,lastname};
调度(注册用户(用户))
.然后(()=>{
debug('then of thunk!');
//结局
调试(auth);
如果(验证错误){
setValues({…values,success:false});
toast.error('已收到电子邮件');
}否则{

toast.info(
dispatch(signUpUser(user))的回调)。然后
有一个名为
auth
的函数,您可以使用
useffect
钩子观看
auth
调用setValues和toast。或者您可以从
signUpUser
返回
auth
对象,谢谢,我会尝试一下。您好,下面的链接我发现它非常有用。