Igo*_*nov 4 reactjs react-hooks
是否有可以与 React 钩子一起使用的 forceUpdate 的替代品?
我的用例是组件实例之间的共享状态。本质上,每个实例只是单个全局状态的视图。使用 ES6 类,代码使用 componentDidMount 中的状态注册/取消注册组件,状态对其更改调用 forceUpdate,然后渲染方法直接查询全局状态。
我考虑将其切换为钩子。最初 useEffect 似乎完美地解决了这个问题。但后来我意识到我无法访问 forceUpdate。
我考虑了一种称为 useState 钩子的解决方法来添加一个虚拟计数器,然后从效果钩子更新计数器,但感觉就像一个黑客。我还可以将所有相关的共享状态参数复制到效果钩子中的组件状态中,然后从状态中引用这些参数。但它本质上是复制状态,因为当前我可以直接在渲染方法中使用这些行,因为它会使用复制状态的行来使代码膨胀。
您可以使用另一种 hack 来执行 forceUpdate。这里是:
从反应文档:
如果下一个值与前一个值相同,则 useState 和 useReducer Hooks 都会退出更新。改变状态并调用 setState 不会导致重新渲染。通常,您不应该在 React 中改变本地状态。但是,作为逃生舱,即使状态没有改变,您也可以使用递增计数器来强制重新渲染。
| 归档时间: |
|
| 查看次数: |
5814 次 |
| 最近记录: |