UNPKG

@kcuf/canvas-marking-react-headless

Version:
22 lines (21 loc) 809 B
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useModelDispatch; var _react = require("react"); var _useIsUnmounted = _interopRequireDefault(require("@kcuf-hook/use-is-unmounted")); var _useModelContext2 = _interopRequireDefault(require("./_use-model-context")); function useModelDispatch() { var isUnmounted = (0, _useIsUnmounted.default)(); var _useModelContext = (0, _useModelContext2.default)(), dispatch = _useModelContext.dispatch; return (0, _react.useCallback)(function (action) { // 不必再担心异步回调 dispatch 可能发生的错误 if (isUnmounted()) { return; } dispatch(action); }, [isUnmounted, dispatch]); }