我熟悉useState挂钩,该挂钩用于存储已更改且需要重新加载组件的变量。变量不是每个函数调用都本地的吗?例如,我有一个将票证信息传递到的功能组件。我将该信息存储在一个变量中,并将其传递到另一个屏幕。该组件在平面列表中呈现,具体取决于调用哪个组件,我想存储该值并将其传递给另一个屏幕。我的问题是,该值正存储在本地对象中,但是仅显示了最后一项的值,而不是按下的项。这是我的代码:
如果我从参数中保存票证,使用“ siteCode”对其进行更新,然后将其传递给onPress事件的参数,则不会得到我想要的结果。如果我在自定义对象之外传递siteCode,则会得到我正在寻找的结果。我只想了解我在这里所缺少的。即使我不想再次渲染组件,我是否仍需要使用useState挂钩?谢谢
您正在违反合同,因此很遗憾您得到的一切。而且,由于它不是受支持的用例,因此您很难期望它也不会在不同的React版本中更改。
React期望纯功能组件是纯功能组件(相对透明,无副作用)。您正在更改道具,正如我所说,它不被支持(这在React回购的github问题上似乎很多)。
在过去,如果您的组件不是纯组件,则可以使用一个类。现在我们有了钩子,但是钩子实际上是一个聪明的解决方法:因为React知道钩子,所以您没有违反功能组件协定。但这并不意味着一切都会发生,如果您有副作用(例如,使在其他地方定义的对象发生变异),则需要将其放上钩,否则会发生棘手的事情。
NB即使在一个班,甚至是完全外反应过来,这是很少(从未?)一个好主意,参数变异的功能,除非该突变的功能做的唯一的事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句