簡體   English   中英

React - 未處理的拒絕(TypeError):無法讀取未定義的屬性“錯誤”

[英]React - Unhandled Rejection (TypeError): Cannot read property 'error' of undefined

我對 React 很陌生,在使用用戶登錄和管理員登錄時遇到錯誤在此處輸入圖像描述

這是我在登錄文件中的方法,我遇到了一個錯誤 - 未定義的錯誤。 如果用戶成功登錄,我在 state 值中使用錯誤來更改錯誤狀態

    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="/" />;
    }
  };

因為它是異步的,你必須等待你的數據有一個點數據未定義,這就是它拋出錯誤的原因。 嘗試改變

if(data.error) {

if(data && data.error) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM