reactjs - 如果为空,React Hook 设置状态值?
问题描述
我有这样的状态值:
const [gamerTag, setGamerTagState] = useState(props.gamerTag);
但是如果为null,我需要将其更改为空字符串gamerTag
,所以我尝试了这个:
if (gamerTag === null) {
gamerTag = "";
}
gamerTag
但是现在我收到一个不变的语法警告。
如果它为空,如何设置gamerTag
为空字符串?
谢谢!
解决方案
在使用 React 状态挂钩时,您似乎可能有一些错误的理解。
您应该在函数调用中传递状态的默认值useState("default value")
。然后,如果您想根据某些条件更新 state 的值,您应该始终使用setState(value)
,在您的情况下它是setGamerTag("")
。
直接更新状态值是错误的,因为 react 依赖于使用setState(value)
函数调用来更新状态,这就是我们使用const [state, setState] = useState()
const 标识符的原因,这样它就阻止了我们直接分配状态。因此,要解决您的错误,您应该这样做:
if (gamerTag === null){
setGamerTag("");
}
推荐阅读
- java - 如何在 tomcat 9 中使用客户端证书?
- powershell - 通过 Intune 使用 PScript 删除-VpnConnection
- wordpress - 如何将自定义字段(状态)添加到 WooCommerce 订单中的产品
- github - 对 GitHub 的 GraphQL 查询因 HTTP 422 无法处理的实体而失败
- rxjs - 我可以在 rxjs 的同一个计时器上运行 map 和 conatMap 管道吗?
- c++ - 为什么未初始化的指针可以访问类成员?
- charts - Spotfire:x 轴上的空值
- python - 在 Python 中使用更多变量进行优化
- azure - Azure Data Studio:未找到新安装扩展的设置/未出现在设置中
- html - CSS - 只有当可用空间低于某个值时才可以换行?