UNPKG

@restart/hooks

Version:

A set of utility and general-purpose React hooks.

33 lines (29 loc) 966 B
"use strict"; exports.__esModule = true; exports.default = useForceUpdate; var _react = require("react"); /** * Returns a function that triggers a component update. the hook equivalent to * `this.forceUpdate()` in a class component. In most cases using a state value directly * is preferable but may be required in some advanced usages of refs for interop or * when direct DOM manipulation is required. * * ```ts * const forceUpdate = useForceUpdate(); * * const updateOnClick = useCallback(() => { * forceUpdate() * }, [forceUpdate]) * * return <button type="button" onClick={updateOnClick}>Hi there</button> * ``` */ function useForceUpdate() { // The toggling state value is designed to defeat React optimizations for skipping // updates when they are stricting equal to the last state value var _useReducer = (0, _react.useReducer)(function (state) { return !state; }, false), dispatch = _useReducer[1]; return dispatch; }