React 树更新时收到通知
Posted
技术标签:
【中文标题】React 树更新时收到通知【英文标题】:Get notified when React tree is updated 【发布时间】:2019-12-07 14:20:13 【问题描述】:ReactDOM.render 接受一个可选的回调,该回调在组件渲染时执行:
ReactDOM.render(element, container[, callback])
React/ReactDOM 中是否有类似的回调,当从内部更新树中的组件(任何深度)时执行,即使用 setState?
仅在根组件上提供 componentDidUpdate 是行不通的,因为子更新不会触发该方法:https://codesandbox.io/s/react-example-yjq0r 可以使用 MutationObserver 订阅 DOM 树更新,但我想知道 React 是否提供了开箱即用的功能。
【问题讨论】:
componentDidUpdate
怎么样?
setState(updater[, callback])
setState 也接受callback
是的,componentDidUpdate/setState 回调,但针对整个树。
React: how to notify parent for changes的可能重复
【参考方案1】:
这可以使用React.Profiler:
<React.Profiler id="app" onRender=callback>
<Root />
</React.Profiler>
https://codesandbox.io/s/react-example-lmvzk
【讨论】:
以上是关于React 树更新时收到通知的主要内容,如果未能解决你的问题,请参考以下文章
react native - 应用程序被杀死/未启动时未收到通知
如何在 React Native 中在没有用户交互的情况下收到通知时打开应用程序
React Native - 在接收本地推送通知时清除以前的推送通知
使用 react-native-push-notification,App 在收到新的 FCM 通知时崩溃