UNPKG

@td-design/rn-hooks

Version:

从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率

30 lines (27 loc) 1 kB
import { __assign } from '../_virtual/_tslib.js'; import { useRef, useEffect } from 'react'; /** * 帮助开发者排查是那个属性改变导致了组件的 rerender。 */ function useWhyDidYouUpdate(componentName, props) { var prevProps = useRef({}); useEffect(function () { if (prevProps.current) { var allKeys = Object.keys(__assign(__assign({}, prevProps.current), props)); var changedProps_1 = {}; allKeys.forEach(function (key) { if (prevProps.current[key] !== props[key]) { changedProps_1[key] = { from: prevProps.current[key], to: props[key], }; } }); if (Object.keys(changedProps_1).length) { console.log('[why-did-you-update]', componentName, changedProps_1); } } prevProps.current = props; }); } export { useWhyDidYouUpdate as default };