首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地方政府能变吗?

地方政府能变吗?
EN

Stack Overflow用户
提问于 2021-05-01 01:21:43
回答 1查看 43关注 0票数 1

有点傻的问题,但通常我看到

代码语言:javascript
复制
const [name, setName] = useContext(myContext)

但是我有一些代码,我想做这样的事情:

代码语言:javascript
复制
var [name, setName] = useContext(myContext)
useEffect(() => {
  if (someCondition)
    name = undefined

  setName(name ?? getName())
}, [name])

我总是看到这个州被贴上“const”的标签,但这有关系吗?(上述情况可以重新分解,因此无关紧要,但这个问题具体是关于“var”与“const”之间的实际关系。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-01 01:27:12

React通常实践函数式编程,在这种编程中,变量不被重新分配,状态不会发生变异。相反,当需要进行更新时,整个函数将使用useState (或useContext)调用返回的更新值重新运行。

与此相一致,当使用const声明变量时,它通常会使代码更容易理解--它将帮助您记住这不会被重新分配,相反,当更新发生时,整个函数将再次运行。

使用var并不是完全被禁止的,但是如果您尝试重新分配变量,它很容易误导您,因为它几乎肯定不会像预期的那样工作--只要该呈现是活动的,重新分配的变量就只有被重新分配的“状态”。下一个呈现开始后,useContext返回的前一个(或更新的)useContext将是新的name,而不管将name重新分配给什么。

最好的做法是避免调职,以避免潜在的混淆。如果您认为您想重新分配一个变量,您可能应该重新考虑并考虑更多的反应方式来做事情,这可能涉及设置状态。

因此,状态变量可能不应该重新分配--但是其他简单(无反应)变量可能是,如果它帮助您实现所需的逻辑的话。(像let count = 4;之类的,其中count是嵌套函数的本地函数,不需要是有状态的)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67342106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档