Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React-未处理的拒绝(TypeError):无法读取属性';错误';未定义的_Javascript_Reactjs - Fatal编程技术网

Javascript React-未处理的拒绝(TypeError):无法读取属性';错误';未定义的

Javascript React-未处理的拒绝(TypeError):无法读取属性';错误';未定义的,javascript,reactjs,Javascript,Reactjs,我是个新手,在使用用户登录和管理员登录时,我遇到了一些错误 这里是我在Signin文件中的方法,我遇到了一个错误——未定义的错误。如果用户成功登录,我将使用状态值中的错误来更改错误状态 const [values, setValues] = useState({ email: "", password: "", error: "", loading: false, didRedirect

我是个新手,在使用用户登录和管理员登录时,我遇到了一些错误

这里是我在Signin文件中的方法,我遇到了一个错误——未定义的错误。如果用户成功登录,我将使用状态值中的错误来更改错误状态

    const [values, setValues] = useState({
    email: "",
    password: "",
    error: "",
    loading: false,
    didRedirect: false
  });

  const { email, password, error, loading, didRedirect } = values;
  const { user } = isAuthenticated();

  const handleChange = name => event => {
    setValues({ ...values, error: false, [name]: event.target.value });
  };

  const onSubmit = event => {
    event.preventDefault();
    setValues({ ...values, error: false, loading: true });
    signin({ email, password })
      .then(data => {
        if(data.error) {
          setValues({ ...values, error: data.error, loading: false });
        } else {
          authenticate(data, () => {
            setValues({
              ...values,
              didRedirect: true
            });
          });
        }
      })
      .catch(console.log("signin request failed"));
  };

  const performRedirect = () => {
    //TODO: do a redirect here
    if (didRedirect) {
      if (user && user.role === 1) {
        return <Redirect to="/admin/dashboard" />;
      } else {
        return <Redirect to="/user/dashboard" />;
      }
    }
    if (isAuthenticated()) {
      return <Redirect to="/" />;
    }
  };
const[values,setValues]=useState({
电邮:“,
密码:“”,
错误:“”,
加载:false,
迪德:错
});
const{email、密码、错误、加载、didRedirect}=值;
const{user}=isAuthenticated();
const handleChange=name=>event=>{
setValues({…values,错误:false,[name]:event.target.value});
};
const onSubmit=事件=>{
event.preventDefault();
setValues({…值,错误:false,加载:true});
登录({电子邮件,密码})
。然后(数据=>{
if(data.error){
setValues({…值,错误:data.error,加载:false});
}否则{
验证(数据,()=>{
设定值({
价值观
迪迪:是的
});
});
}
})
.catch(console.log(“登录请求失败”);
};
const performRedirect=()=>{
//TODO:在这里重定向
如果(重定向){
if(user&&user.role==1){
返回;
}否则{
返回;
}
}
如果(isAuthenticated()){
返回;
}
};

由于它是异步的,您必须等待数据,因此存在一个点数据未定义,这就是它抛出错误的原因。试着改变

if(data.error) {


谢谢老兄,让我试试这个
if(data && data.error) {