首页 > 解决方案 > 反应检查 Const 是否为空

问题描述

你好,我是新来的反应,我有一个问题..我想设置一个错误消息并检查它是否为空。

这是我的代码:

const [errormsg, setErrorMsg] = useState("");


const register = (e) =>{

    if(firstname === "" || lastname === ""){
            setErrorMsg("Please fill out all Gaps!");
            e.preventDefault();
    }

    if(errormsg === ""){
    //DO SOMETHING
    }
}

但是每次它都会跳过应该停止的部分。因为即使姓氏为空,它也会继续,但我不知道为什么,因为它应该停在那里。

我还添加了 e.preventDefault(); 因为我想向用户显示错误消息,如果它在每次提交后重新加载,这不起作用

标签: javascriptreactjsreact-native

解决方案


React 状态是一种异步,你不能指望下一行有状态集,所以你应该做的是

const [errormsg, setErrorMsg] = useState("");


const register = (e) =>{

    if(firstname === "" || lastname === ""){
            setErrorMsg("Please fill out all Gaps!");
            e.preventDefault();
    }
}

useEffect(() => {
  if(errormsg === ""){
    //DO SOMETHING
   }
}, [errormsg])

useEffect 中的回调将在每次errormsg更改时执行。


推荐阅读