UNPKG

@td-design/rn-hooks

Version:

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

32 lines (28 loc) 1.02 kB
'use strict'; var _tslib = require('../_virtual/_tslib.js'); var react = require('react'); /** * 帮助开发者排查是那个属性改变导致了组件的 rerender。 */ function useWhyDidYouUpdate(componentName, props) { var prevProps = react.useRef({}); react.useEffect(function () { if (prevProps.current) { var allKeys = Object.keys(_tslib.__assign(_tslib.__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; }); } module.exports = useWhyDidYouUpdate;