首页 > 解决方案 > 如果为空,React Hook 设置状态值?

问题描述

我有这样的状态值:

const [gamerTag, setGamerTagState] = useState(props.gamerTag);

但是如果为null,我需要将其更改为空字符串gamerTag,所以我尝试了这个:

if (gamerTag === null) {
    gamerTag = "";
}

gamerTag但是现在我收到一个不变的语法警告。

如果它为空,如何设置gamerTag为空字符串?

谢谢!

标签: reactjsreact-hooks

解决方案


在使用 React 状态挂钩时,您似乎可能有一些错误的理解。

您应该在函数调用中传递状态的默认值useState("default value")。然后,如果您想根据某些条件更新 state 的值,您应该始终使用setState(value),在您的情况下它是setGamerTag("")

直接更新状态值是错误的,因为 react 依赖于使用setState(value)函数调用来更新状态,这就是我们使用const [state, setState] = useState()const 标识符的原因,这样它就阻止了我们直接分配状态。因此,要解决您的错误,您应该这样做:

       if (gamerTag === null){
            setGamerTag("");
        }

推荐阅读