diff --git a/src/common/index.js b/src/common/index.js index 60114b01f..ad9ee8e53 100644 --- a/src/common/index.js +++ b/src/common/index.js @@ -18,6 +18,7 @@ const TextInput = require('./TextInput'); const routesRegexp = require('./routesRegexp'); const useBinaryState = require('./useBinaryState'); const useFullscreen = require('./useFullscreen'); +const useLiveRef = require('./useLiveRef'); const useLocationHash = require('./useLocationHash'); const useRouteActive = require('./useRouteActive'); const useSpreadState = require('./useSpreadState'); @@ -44,6 +45,7 @@ module.exports = { routesRegexp, useBinaryState, useFullscreen, + useLiveRef, useLocationHash, useRouteActive, useSpreadState, diff --git a/src/common/useLiveRef.js b/src/common/useLiveRef.js new file mode 100644 index 000000000..3935dbdbd --- /dev/null +++ b/src/common/useLiveRef.js @@ -0,0 +1,11 @@ +const React = require('react'); + +const useLiveRef = (value, dependencies) => { + const ref = React.useRef(value); + React.useEffect(() => { + ref.current = value; + }, dependencies); + return ref; +}; + +module.exports = useLiveRef;