123456789101112131415161718192021222324252627 |
- import { useReducer } from '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>
- * ```
- */
-
- export default function useForceUpdate() {
- // The toggling state value is designed to defeat React optimizations for skipping
- var _useReducer = useReducer(function (state) {
- return !state;
- }, false),
- dispatch = _useReducer[1];
-
- return dispatch;
- }
|