我注意到,当您在一个挂钩中使用useState然后使用setState更改正在缓存的值时,该挂钩将再次被调用并重新呈现该组件。尽管在大多数情况下可能需要这样做,但我有一种情况是当状态更改时我不想重新渲染。这种情况是在页面顶部有一个导航菜单(选项卡)时,当您单击一个选项卡时,它会在其下方的窗格中显示内容。我真的只想隐藏当前显示的选项卡的内容,然后显示所选选项卡的内容。隐藏内容时,这实际上是将CSS的“显示”样式设置为“无”。这样既可以保留内容窗格的状态,又可以避免诸如检索数据之类的影响。
我可以想到一种解决方案,但确实需要将组件拆分为隔离的模块。我很好奇,虽然是否有一种方法可以更改状态,但又不会导致重新呈现组件的副作用。