@kcuf/canvas-marking-react-headless
Version:
The React headless wrapping of @kcuf/canvas-marking.
22 lines (21 loc) • 809 B
JavaScript
;
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]);
}