React检查Const是不是为空[重复]

Posted

技术标签:

【中文标题】React检查Const是不是为空[重复]【英文标题】:React Check if Const is empty [duplicate]React检查Const是否为空[重复] 【发布时间】:2021-08-12 00:24:28 【问题描述】:

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

这是我的代码:

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


const register = (e) =>

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

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


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

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

【问题讨论】:

e.preventDefault(); 应该在第一个 if 条件之上调用 好的,谢谢,但即使错误消息不是“”,它也只会执行第二个 if 语句下的命令 【参考方案1】:

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

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 更改时执行。

【讨论】:

codesandbox.io/s/fancy-surf-sv0ej?file=/src/App.js

以上是关于React检查Const是不是为空[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查结构是不是为空[重复]

检查数组是不是为空[重复]

检查 JSON 响应数据是不是为空 [重复]

检查返回的值是不是为空[重复]

检查数组是不是为空,因此禁用按钮[重复]

使用jQuery检查值是不是为空[重复]